nohup sleepではコマンドクリアが機能しないのはなぜですか?

nohup sleepではコマンドクリアが機能しないのはなぜですか?

以下は2つのコード例です。どちらもnohupbash文字列のコードです。最初の人は仕事をし、2人目は仕事をしませんでした。私は理由を尋ねた。

sudo apt-get purge zip unzip
nohup bash -c " sleep 20s; apt-get install zip unzip; " & 

上記のコマンドはバックグラウンドで実行され、これらのソフトウェアでインストールされます(zipstdin ""を実行して確認しました。


nohup bash -c " sleep 20s; clear; "

このコマンドはフォアグラウンドで実行されますが、ttyをクリアしません。なぜそんなことですか?現在のセッションの画面を消去するにはどうすればよいですか?役に立つコマンドで実行できるパラメータ/実行/スクリプトはありますか?

答え1

プログラムclearが作成中です。標準出力今すぐリダイレクトコマンドとしてnohup。したがって、これは端末に影響を与えません。

からのclear出力を見ることができますnohup.out

次のことができます。

nohup bash -c " sleep 20s; clear >/dev/tty; "

出力をデバイスclearにリダイレクトするようにシェルに指示します。コマンドを使用して端末を識別ttyできます。tty装備使用するもの、例えば

    nohup bash -c " sleep 20s; clear > $(tty); "

しかし、ほとんどの場合、両方が機能します。

から警告を受けることができますnohup。この警告は無音に設定できます。

    nohup bash -c " sleep 20s; clear > $(tty); " 2>/dev/null

関連情報