私は一定時間(この質問では10秒と仮定します)後に再起動コマンドを繰り返す簡単な方法を見つけたいと思います。単純化のために問題の命令があるとしましょうhtop --tree
。
これまでの試み:コマンドを実行して停止します。一度命令を見つけて実行し、10秒後に再び停止しましたtimeout
。もう一度言うと、与えられた間隔でコマンドを再実行できるtimeout 10 htop --tree
コマンドが見つかりました。watch
だから私の試みは2つの組み合わせを使用することでした
watch -n 10 `timeout 9 htop --tree`
ただし、その出力はhtop
表示されません。私が何を間違っているのか、この問題を解決する方法を知っている人はいますか?それとも、私が達成したい目標の代替bashソリューションを提案できますか?
答え1
はい、このwatch
ユーティリティはいくつかのコマンドの動作に影響します。ちょうどループを使用する方が良いです。視聴も要請されたようです。出力コマンドの一部であるコマンドhtop
は実際に望むものではないかもしれません(コマンドの代替であるバックティックを探してください。つまり、コマンドの一部がその中のコマンドの出力に置き換えられることを意味します)。
while true; do
timeout 10 htop --tree
done
達成したい効果に応じて、更新遅延自体を調べることもできますhtop
。ここでは10秒のリフレッシュレートを使用しています。
htop -d 100
(遅延時間は10分の1秒単位で測定されます。)