如何重定向'&'命令的日志?

时间:2012-07-10 08:32:27

标签: bash jobs

这是命令:

 # ls >log 2>&1 &
 [1] 24274

现在我希望此行[1] 24274重定向另一个文件。任何想法?

2 个答案:

答案 0 :(得分:5)

Use $!:

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+)\]/'