如何通过管道获取进程ID,名称或状态

时间:2017-05-31 09:51:00

标签: bash shell sh

我可以在下面的命令中获取ls -al的进程ID吗?

$ ls -al | echo [I want get process id of left command]

由于

1 个答案:

答案 0 :(得分:1)

这可以通过文件

完成
{ ls -al & echo $! > pid;} | { echo $(<pid);}

可能存在竞争条件

使用fifo

mkfifo /tmp/fifo
{ sleep 5 & echo $! >/tmp/fifo;} | { pid=$(</tmp/fifo); echo $pid; ps -p $pid;}
rm /tmp/fifo