首先,我是shell脚本的初学者。我所做的这段代码不起作用。shell脚本的问题!
我想重复30秒的代码,但它不起作用。它只是继续无限地执行我的逻辑。
DIFF=0
while [ $DIFF < 30 ]; do
START=$(date +%s)
######## My logiC#########
DIFF=$(($END - $START))
echo $DIFF
cd ..
sleep 5s
done
我认为这是因为我没有正确地执行while子句?
我的第二编辑是解决这个的一个工作1行版本;它应该做你想要的东西。 – 2010-06-22 15:04:17
'cd ..'部分很奇怪;它会工作(根目录是它自己的父目录,所以当你到达最上层的时候 - 另一个'cd ..'什么也不做),但可能不是你想到的。 – 2010-06-22 15:06:59
您想要捕获循环前的开始时间和循环内的当前结束时间(仅)。睡觉论证结束时的's'是不必要的;它可能不会导致任何地方的错误,但只有秒是POSIX标准(其他任何东西都是扩展名)。 – 2010-06-22 15:08:08