Команда Bash не найдена, ошибка с переменной $

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, она выводит правильное значение без ошибки

0
27.11.2016, 03:44
2 ответа

Исправить ...

ps --ppid $process | while read -r line ; do
  child=$(echo $line | awk '{print $1}')
done
0
28.01.2020, 02:47

Проблема в том, что вы на самом деле не передаете значение $lineв awk. Вместо этого вы пытаетесь выполнить его как команду.

Если все, что вы хотите сделать, это вывести дочерние процессы процесса с определенным PID, вам не нужно зацикливаться:

ps --ppid "$process" -o pid=

Это позволит получить список процессов, имеющих $processв качестве их PPID, и для каждого вывода их PID.

Также связанные:

1
28.01.2020, 02:47

Теги

Похожие вопросы