108 ps --ppid $process | while read -r line ; do
109 #echo $line | awk '{print $1;}
110 child=$($line | awk '{print $1;}')
111 echo $child
113 done
Выполнение этого кода дает мне следующую ошибку:
line 111: 3405: command not found
Но если я раскомментирую строку 109, она выводит правильное значение без ошибки
Исправить ...
ps --ppid $process | while read -r line ; do
child=$(echo $line | awk '{print $1}')
done
Проблема в том, что вы на самом деле не передаете значение $line
в awk
. Вместо этого вы пытаетесь выполнить его как команду.
Если все, что вы хотите сделать, это вывести дочерние процессы процесса с определенным PID, вам не нужно зацикливаться:
ps --ppid "$process" -o pid=
Это позволит получить список процессов, имеющих $process
в качестве их PPID, и для каждого вывода их PID.
Также связанные: