例如:
printstuffslowly | ts -s &
ARECORD_PID=$!
或者:
arecord [options] > ~/recording.wav 2> >(ts -s > ~/errors.log) &
ARECORD_PID=$!
从我在命令行上的测试中,$ARECORD_PID
最终得到ts
's PID。但我想我想要的是printstuffslowly
's PID 或arecord
's PID 以便我可以循环更多命令,直到它退出:
while kill -0 "$ARECORD_PID" > /dev/null 2>&1
do
sleep 1
sync
done
有没有办法得到它?或者ts
' 的 PID 是否真的和我的目的一样有效?
它仍然是 的 PID
arecord
。从bash 手册:进程替换中的命令需要在后台命令之前启动:
所以 PID 基本上丢失了(你仍然
pgrep
可以,但没有 bash 内置命令或变量会得到它)。