我希望运行一个bash脚本,只有在语句为真时才会停止。
我的bash脚本代码如下。我正在比较日期,如果比较日期为假,脚本不应该停止,继续运行直到达到正确的时间。
我遇到问题,我希望脚本是这样的"当前时间是03180932015,如果时间到达031809402015,它将回显到一个文件,然后停止。" 但现在不是。如果该语句为false,则将结束该脚本。
time=`date '+%m%d%H%M%Y'`
if [ $time == "031809402015" ]; then
#echo "hellodd:" > ./aaa.txt
ipmitool -I lanplus -H 192.168.2.2 -U USERID -P PASSW0RD sel list > xxx.txt
fi
done
答案 0 :(得分:2)
试试这个:
until [[ "$(date '+%m%d%H%M%Y')" == "031809402015" ]]; do
sleep 1
done
ipmitool ...
答案 1 :(得分:1)
试试这个:
while循环非常适合在某些条件为真时需要执行一组命令的情况。有时您需要执行一组命令,直到条件为真。
until command
do
Statement(s) to be executed until command is true
done
此处评估Shell命令。如果结果值为false,则执行给定语句。如果命令为istrue,则不会执行任何语句,程序将在完成语句后跳转到下一行。