バックグラウンドでジョブを実行する
$ command &
完了すると、ターミナルは出力します
[n]+ command
または
[n]- command
したがって、プラスの場合もあれば、マイナスの場合もあります[n]
。
プラス/マイナスはどういう意味ですか?
彼らは現在と以前の仕事を区別することです。 2つ以上のジョブの最後のジョブと2番目の最後のジョブ。最後のジョブは+
、最後の2番目のジョブは-
です。
man bash
から:
以前のジョブは
%-
を使用して参照できます。ジョブが1つしかない場合は、%+
と%-
の両方を使用してそのジョブを参照できます。ジョブに関連する出力(たとえば、jobsコマンドの出力)では、現在のジョブには常に+
のフラグが付けられ、前のジョブには-
のフラグが付けられます。
$ sleep 5 &
[1] 21795
$ sleep 5 &
[2] 21796
$ sleep 5 &
[3] 21797
$ sleep 5 &
[4] 21798
$ jobs
[1] Running sleep 5 &
[2] Running sleep 5 &
[3]- Running sleep 5 &
[4]+ Running sleep 5 &
$
[1] Done sleep 5
[2] Done sleep 5
[3]- Done sleep 5
[4]+ Done sleep 5
$jobs
を使用してジョブを確認するときに、あなたが参照していると思います。ただし、おそらくご存じのとおり、n
はジョブ#を示します。 [n] +
は、呼び出された最後のジョブを示します。 [n] -
は、呼び出される最後から2番目のジョブを示します。
例:
chris@chris-VirtualBox:~$ sleep 30 &
[1] 904
chris@chris-VirtualBox:~$ sleep 50 &
[2] 972
chris@chris-VirtualBox:~$ jobs
[1]- Running sleep 30 &
[2]+ Running sleep 50 &
このため、この場合、sleep 50 &
は最後:[2]+
であり、sleep 30 &
は2番目に続く:[1]-