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