bash: bashプロンプトにバックグラウンドジョブの名前を表示する

bash: bashプロンプトにバックグラウンドジョブの名前を表示する

bash プロンプトをミニタスクバーで使用できれば便利です。

bash プロンプト (PS1) は、jobs コマンドにリストされているジョブの名前を表示できますか?

答え1

コメント内の AFH は、基礎ブロックを提供します。引用を正しく行う方法の一例を次に示します。

「ジョブ名」として、ジョブのコマンド名(「実行中」の後の最初の単語)を選択します。

PS1='$(echo $(jobs | awk '\''/Running/{print "[" $3 "]"}'\''))$ '

これを 2 つのバックグラウンド コマンドで試し、数回「Enter」と入力してプロンプトが変化するのを確認します。

$ sleep 4 & sleep 2 &
[1] 7222
[2] 7223
[sleep] [sleep]$ 
[sleep] [sleep]$ 
[2]+  Done                    sleep 2
[sleep]$ 
[1]+  Done                    sleep 4
$ 

関連情報