バックグラウンド ジョブの出力における `+` と `-` の意味

バックグラウンド ジョブの出力における `+` と `-` の意味

バックグラウンドジョブを大量に実行すると

for s in {1,2,3}; do command_$s &; done;

jobsコマンドですべて見ることができます

$ jobs
[2]    running    command_1
[3]  - running    command_2
[4]  + running    command_3

最初の列がIDであることはわかっています(たとえば、kill -9 %2killすることができますcommand_

しかし+-と がない場合はどういう意味でしょうか? と を実行してman jobsjobs -h機能しません。

答え1

の中にbash の情報マニュアル7.1章「ジョブ制御の基礎」に説明があります。

ジョブ番号 n は '%n' として参照できます。シンボル '%%' および '%+' は、シェルの現在のジョブの概念を参照します。現在のジョブは、フォアグラウンドで停止されたか、バックグラウンドで開始された最後のジョブです。単一の '%' (ジョブ指定なし) も現在のジョブを参照します。前のジョブは '%-' を使用して参照できます。ジョブが 1 つしかない場合は、'%+' と '%-' の両方を使用してそのジョブを参照できます。

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

関連情報