Como imprimir o id do processo no statment

0

Eu designei um trabalho para levar, tomar todo o processo e transformá-lo em uma declaração. Então eu tentei este script.

#!/bin/bash
a= ps | awk '{print $1}'
echo select $a

Então, estou recebendo esta saída

PID
1838
1839
1840
13226
select 

Eu sei que a variável a está aceitando muitos argumentos e não consegue inserir em um, mas não consigo obter a lógica.

Eu quero uma saída semelhante a esta.

select 1838, 1839, 1840, 13226

Obrigado antecipadamente.

    
por temp 09.04.2014 / 18:54

1 resposta

1

Resposta atualizada

Use backticks '' ou $( ) para agrupar os comandos cuja saída será salva como a variável.

Tail +2 para mostrar todos, exceto a primeira linha.

O Awk adiciona a vírgula e os espaços entre os valores

Sed remove o espaço de vírgula no final da linha.

#!/bin/bash
a=$(ps | tail +2 | awk '{printf ("%s, ",$1)}' | sed "s/, $//")
echo select $a

Saída

$ ./printpid.sh
select 2293836, 3276802, 6422606, 6750318, 7667882, 7798894, 8716412
    
por 09.04.2014 / 19:15