コマンドは次のとおりです。
# 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からジョブ番号を本当に取得したい場合、おそらくkillを使用してプロセスにシグナルを送信する代わりに、Bashのジョブ制御を使用する場合は、次のように実行できます。
jobs -l | fgrep $! | perl -ne 'print "$1\n" if /\[(\d+)\]/'