
これをArchのdashシェルとFreeBSDのデフォルトのshシェルでテストしましたが、結果は同じでした。
$ sleep 100 &
$ jobs
[1] + Running sleep 100
$ jobs | wc
0 0 0
$ jobs | grep 1
コマンドの出力はできwc
ません。このコマンドはシェルに組み込まれています。grep
jobs
jobs
その理由は何ですか?jobs
インタラクティブシェルとパイプから異なる情報を印刷する方法はありますか?詳細はわかりませんが、同様の行動を知っていますls
。つまり、シェルで圧縮された出力を表示できますが、ls
各grep
ファイル名は別々の行で処理されます。
編集:同様の質問を見つけました。ダッシュですべてのバックグラウンドタスクを終了する方法は?この問題は、jobs
コマンドの出力を取得できないために発生します。