$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

관련 정보