停止および再開コマンドを繰り返す方法

停止および再開コマンドを繰り返す方法

私は一定時間(この質問では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秒単位で測定されます。)

関連情報