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