
バックグラウンドジョブを大量に実行すると
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 %2
killすることができますcommand_
)
しかし+
、-
と がない場合はどういう意味でしょうか? と を実行してman jobs
もjobs -h
機能しません。
答え1
の中にbash の情報マニュアル7.1章「ジョブ制御の基礎」に説明があります。
ジョブ番号 n は '%n' として参照できます。シンボル '%%' および '%+' は、シェルの現在のジョブの概念を参照します。現在のジョブは、フォアグラウンドで停止されたか、バックグラウンドで開始された最後のジョブです。単一の '%' (ジョブ指定なし) も現在のジョブを参照します。前のジョブは '%-' を使用して参照できます。ジョブが 1 つしかない場合は、'%+' と '%-' の両方を使用してそのジョブを参照できます。
ジョブに関する出力 (コマンドの出力など
jobs
) では、現在のジョブには常に「+」のフラグが付けられ、前のジョブには「-」のフラグが付けられます。