$variableが見つかりません。 Bash コマンドエラー

$variableが見つかりません。 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のコメントを削除すると、エラーなしで正しい値が印刷されます。

答え1

問題は、実際に値を$line割り当てるのではなく、awkコマンドで実行しようとしていることです。

特定のPIDを持つプロセスの子を出力したい場合は、ループは必要ありません。

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

これにより、PPIDを含むプロセスのリスト$processと各出力のPIDが表示されます。

また関連:

答え2

修正する...

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

関連情報