質問: unixコマンドをx秒ごとに永久に繰り返します 組み込みのunixコマンドrepeatがあり、その最初の引数はコマンドを繰り返す回数です。コマンド(任意の引数を含む)は、repeatの残りの引数によって指定されます。例えば、% repeat 100 echo "i will not automate this punishment." 指定された文字列を100回エコーしてから停止します。同様のコマンドが欲しい-それをforeverと呼びましょう-最初の引数が繰り返しの間に休止する秒数であり、それが永久に繰り返されることを除いて同様に機能します。例えば、% forever 5 echo "this will get echoed every 5 seconds forever and ever." 書く前に、そういうものが存在するか聞いてみようかなと思いました。 2行のperlやpythonスクリプトのようなものですが、これを行うためのより標準的な方法があるかもしれません。そうでない場合は、お好みのスクリプト言語でソリューションを投稿してください。ps:多分これを行うためのより良い方法は、repeatを一般化して、繰り返す回数(-1は無限を意味する)と繰り返しの間にスリープする秒数の両方を取ることでしょう。上記の例は次のようになります。% repeat 100 0 echo "i will not automate this punishment." % repeat -1 5 echo "this will get echoed every 5 seconds forever."
回答: perl#!/usr/bin/env perl # first argument is number of seconds to sleep between repeats, remaining # arguments give the command to repeat forever. $sleep = shift; $cmd = join(' ', @argv); while(1) { system($cmd); sleep($sleep); }