如何通过管道获取进程ID,名称或状态
问题描述:
我可以在以下命令中获得进程ID为ls -al
吗?如何通过管道获取进程ID,名称或状态
$ ls -al | echo [I want get process id of left command]
感谢
答
这可以做到通过一个文件
{ 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
你可能不能。顺便说一句,如果左边的命令是shell内建的呢? –