採用情報に役職が表示されません。

採用情報に役職が表示されません。

というファイルがありますgo.sh

python3 bob.py &> lol.log & 
python3 alice.py &> lol2.log &

私が走っているときは、./go.sh以下を実行してくださいjobs。私がしたことは実際には何も表示されませんgo.shでした。jobsjobs

ただし、各コマンドを1つずつ実行するとgo.sh表示されますjobs

この問題をどのように解決できますか?

答え1

私はあなたがgo.sh &ただ実行しないと仮定していますgo.sh。それからjobsそれは些細なことだからです(終わった後は何も報告されません)。

スクリプトはバックグラウンドで2つの操作を開始してから完了します。だからあなたはそれを見ることができません。また、他のシェルなので、スクリプトによって開始された操作を見ることはできません。スクリプトを実行する代わりにタスクを表示するには、このスクリプトを入手してください。

. go.sh; jobs

これで、2つの役職がリストされていることがわかります。

スクリプトを実行してまだジョブとして処理するには、その子孫が完了するまで待つように指示します。wait終了する前に追加しました。jobsスクリプト内で呼び出すこともできます。

答え2

ジョブは、入力しているシェルの直系子である場合にのみ「ジョブ」に表示されます。スクリプトは新しいプロセスのサブシェルで実行されるため、ログインシェルのサブシェルではなく、ログインシェルには表示されません。

関連情報