$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

相关内容