这是命令:
# ls >log 2>&1 &
[1] 24274
现在我希望这一行[1] 24274
重定向另一个文件。有任何想法吗?
ls >log 2>&1 &
echo ls: pid=$!
除非您想获取工作编号,否则最简单的方法是使用$! ,这将为您提供最近的后台作业的 PID。例如:
$ sleep 30 & bg_pid=$!; echo $bg_pid
[2] 10100
10100
如果您真的想从存储的 PID 中取回作业编号,也许是使用 Bash 的作业控制而不是使用kill向进程发送信号,您可以这样做:
jobs -l | fgrep $! | perl -ne 'print "$1\n" if /\[(\d+)\]/'