バックグラウンドでのLinuxジョブが終了した場合(&で始まる)、これらの+/-はどういう意味ですか


43

&最後にアンパサンド()を付けてプロセスを開始すると、バックグラウンドに分岐します。終了すると、次のような出力が得られます

[1]+  Fertig   my_script

私はローカライズされたディストリビューションを持っていますが、これは問題ではありません。

角かっこで囲まれたジョブIDにプラス(+)が付いています。

複数のジョブを並行して開始した場合、

[1]-  Fertig   my_script
[2]+  Fertig   my_script

現在-、最初のジョブにはマイナス()があり+、2番目のジョブにはプラス()があります。

私は、それら+/ 何を-意味するのだろうか。

インターネット検索エンジンを使用しても答えが見つかりませんでした。

回答:


57

からman bash

ジョブに関連する出力(jobsコマンドの出力など)では、現在のジョブには常にのフラグが付けられ+、前のジョブにはのフラグが付けられ-ます。

つまり、フラグが付けられたジョブは、+最後にバックグラウンドに送信されたジョブです。

また、fg引数なしで使用すると、フォアグラウンドに移動します。

$ /tmp/script &
[1] 9871
$ /tmp/script2 &
[2] 9876
$ /tmp/script3 &
[3] 9881
$ /tmp/script4 &
[4] 9886
$ jobs
[1]   Running                 /tmp/script &
[2]   Running                 /tmp/script2 &
[3]-  Running                 /tmp/script3 &
[4]+  Running                 /tmp/script4 &
$ fg
/tmp/script4

でフラグが付けられたジョブは、-最後から2番目にバックグラウンドに送信されました。他のバックグラウンドジョブにはフラグが付けられません。


喜んで、お手伝いできてうれしいです。
ジャウメ

1
それで、+はfg / bgコマンドが何をするのかを言うのに便利ですが、-は何かに役立ちますか?
tsbertalan

@tsbertalan私は同意します、それの使用を見ることはできません。Iそれは、あまりにも、私はむしろ期待紛らわしい見つける-仕事を識別するために送られた最初の背景に、多分それは私だけです...
ジャウメ

私は時々そこに2つのプラスまたは2つのマイナスを見ます。「最後」または「現在」の定義に実際には適合しません。これがbash 4.3.42です。
ヤンフィリップゲールケ

8
@tsbertalan Ctrl + Zを実行してfg -から、2つのジョブを切り替えます。マイナス記号が便利です。
cozyconemotel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.