[USER@SERVER ~] sleep 3 &
[1] 5232
[USER@SERVER ~]
[1]+ Done sleep 3
[USER@SERVER ~]
これら2つのメッセージを含む/ dev / nullをどのように取得しますか? :
[1] 5232
[1]+ Done sleep 3
PS:したがって、プロセスの出力が必要ですが、言及された2行は必要ありません!
答え1
プログラム出力ではなく、便利なシェル情報です。
とにかく、サブシェルと出力リダイレクトを使用して非表示にすることができます。
( sleep 3 & ) > /dev/null 2>&1
答え2
Bashまたはzshでは、呼び出してdisown %1
シェルに作業を忘れるように指示できます。これにより、シェルはジョブのメッセージを印刷せず、jobs
SIGHUP の実行または送信時にメッセージも表示しません。 zshで&!
ジョブを開始する代わりに使用することは、すぐに呼び出すのと&
同じです。disown
答え3
努力する:
user@host:~$ read < <( sleep 10 & echo $! )
user@host:~$ echo $REPLY
28677
そしてあなたは隠しました。出力そしてPID。それでも検索できます。PID$REPLYから
答え4
@Gillesはまだコメントできませんが、& disown
bashでも機能しているようです。
sleep 3 & disown