while循环如何等待进程

时间:2018-06-01 15:11:29

标签: linux shell pid csh

参考wait for two PID in c-shell

while ( `ps -p "$pid1,$pid2" | wc -l` > 1 )
  sleep 1
end

表达式ps -p "$pid1,$pid2" | wc -l > 1在做什么?

1 个答案:

答案 0 :(得分:0)

它只是检查是否有任何进程匹配给定pid1pid2至少一个

使用PID 1和2进行快速检查:

  $ ps -p "1,2" # Show all processes with PID=1 and PID=2
  PID TTY          TIME CMD
    1 ?        00:00:57 systemd
    2 ?        00:00:00 kthreadd

输出有三行,因为wc -l的管道也会告诉你。所以只要你有一行以上(标题总是在那里),你的循环就会被执行。