Problem :
I have assigned a work to take take all process and make them into a statement. So I tried this script.
#!/bin/bash
a= ps | awk '{print $1}'
echo select $a
So I am getting this output
PID
1838
1839
1840
13226
select
I know that a
variable is taking many arguments and unable to insert into one, but i am unable to get the logic.
I want a output similar to this.
select 1838, 1839, 1840, 13226
Thanks in advance.
Solution :
Updated answer
Use backticks “ or $( )
to wrap the commands whose output will be saved as the variable.
Tail +2 to show all but the first line.
Awk adds the comma and spaces between the valuese
Sed removes the comma-space at the end of the line.
#!/bin/bash
a=$(ps | tail +2 | awk '{printf ("%s, ",$1)}' | sed "s/, $//")
echo select $a
Output
$ ./printpid.sh
select 2293836, 3276802, 6422606, 6750318, 7667882, 7798894, 8716412