web-dev-qa-db-ja.com

+/-バックグラウンドでのジョブが完了した後

バックグラウンドでジョブを実行する

$ command &

完了すると、ターミナルは出力します

[n]+    command

または

[n]-    command

したがって、プラスの場合もあれば、マイナスの場合もあります[n]

プラス/マイナスはどういう意味ですか?

21
Lee

彼らは現在と以前の仕事を区別することです。 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
19
heemayl

$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]-

2
Klamz