我正在学习bash脚本,我想每5秒调用一次函数x秒。当脚本运行时,x由命令行参数确定。我试过手表,但它似乎永远持续下去,我似乎没有能力在x秒后返回。可能有睡眠的方式,但它似乎笨拙,我必须处理当地的漂移。有没有优雅的解决方案?Shell脚本运行命令每5秒x秒数
我的代码:
#!/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
感谢提示SECONDS –
为什么睡眠5 || break'?不睡觉返回0,所以休息永远不会被调用?即使它被调用,它会做什么,在“完成”之前? –
当被杀死/中断或者用时间说明符调用当前平台认为无效的时候,例如GNU的'0.5'或'1m',或者由于某种原因时间变量结束为空或者错误时'sleep'返回非零值 –