【发布时间】:2012-07-09 16:50:54
【问题描述】:
命令如下:
# ls >log 2>&1 &
[1] 24274
现在我希望这一行 [1] 24274 重定向另一个文件。有什么想法吗?
【问题讨论】:
-
这个问题更适合unix.stackexchange.com
命令如下:
# 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+)\]/'
【讨论】: