3

コマンドは次のとおりです。

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

ここで、この行[1] 24274で別のファイルをリダイレクトします。何か案は?

4

2 に答える 2

5

使用$!

ls >log 2>&1 &
echo ls: pid=$!
于 2012-07-10T08:48:17.077 に答える
2

ジョブ番号を取得しようとしているのでない限り、これを行う最も簡単な方法は$を使用することです。、これにより、最新のバックグラウンドジョブのPIDが得られます。例えば:

$ sleep 30 & bg_pid=$!; echo $bg_pid
[2] 10100
10100

保存されたPIDからジョブ番号を本当に取得したい場合、おそらくkillを使用してプロセスにシグナルを送信する代わりに、Bashのジョブ制御を使用する場合は、次のように実行できます。

jobs -l | fgrep $! | perl -ne 'print "$1\n" if /\[(\d+)\]/'
于 2012-07-10T09:00:45.137 に答える