私はbashスクリプトを学習しており、x秒間に5秒ごとに関数を呼び出す必要があります。 xは、スクリプトの実行時にコマンドライン引数によって決定されます。私は腕時計を試しましたが、それは永遠に続くようですが、私はx秒後に復帰する能力を持っていないようです。寝る道があるかもしれないが、それは不器用に思われ、私は地元のドリフトに対処しなければならない。エレガントなソリューションはありますか?シェルx秒間に5秒ごとにコマンドを実行するスクリプト
マイコード:
#!/bin/bash
if [ $# -ne 1 ]; then # only 1 command line arg allowed
echo "Incorrect arguments"
exit 1
elif ! [[ $1 =~ ^[0-9]+$ ]]; then # arg must be digit
echo "Argument must be a positive number"
exit 1
fi
ask()
{
OUTPUT=$(snmpwalk -v2c -c community server oib)
CLEANOUTPUT="${OUTPUT:32}%"
echo $CLEANOUTPUT
}
#export -f ask
#watch -n5 ask
ヒントをありがとうセコンド –
なぜ 'sleep 5 ||休憩? 0を返すのをスリープしないので、ブレークは決して呼び出されませんか?それが呼び出されたとしても、 'done'の直前に何をしますか? –
'sleep'は、現在のプラットフォームがGNUの' 0.5'や '1m'のように無効と見なす時間指定子で殺されたり中断されたり、呼び出されたりしたときに0以外の値を返すか、何らかの理由 –