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