Linux 如何让循环仅在语句为true时停止

Linux 如何让循环仅在语句为true时停止,linux,bash,loops,Linux,Bash,Loops,我希望运行一个bash脚本,它只有在语句为true时才会停止 下面是我的bash脚本代码。我正在比较一个日期,如果比较日期为false,脚本不应该停止,继续运行直到它到达正确的时间 我遇到了一个问题,我希望脚本是这样的:“当前时间是03180932015,如果时间达到031809402015,它将回显到一个文件,并停止。” 但现在不是了。如果该语句为false,它将结束脚本 time=`date '+%m%d%H%M%Y'` if [ $time == "031809402015" ]; the

我希望运行一个bash脚本,它只有在语句为true时才会停止

下面是我的bash脚本代码。我正在比较一个日期,如果比较日期为false,脚本不应该停止,继续运行直到它到达正确的时间

我遇到了一个问题,我希望脚本是这样的:“当前时间是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
试试这个:

while循环非常适合在某些条件为真时需要执行一组命令的情况。有时需要执行一组命令,直到条件为真

until command 
do 
Statement(s) to be executed until command is true 
 done
这里计算Shell命令。如果结果值为false,则执行给定的语句。如果命令为true,则不会执行任何语句,程序将在完成语句后跳转到下一行。

尝试以下操作:

until [[ "$(date '+%m%d%H%M%Y')"  == "031809402015" ]]; do
  sleep 1
done
ipmitool ...

您是否尝试直到循环??您希望脚本在该时间之前执行某些操作,还是在该时间之前不执行任何操作?还请查看
at
命令,该命令在指定时间运行指定的命令或脚本。Beta:我想在该时间之前不执行任何操作我去尝试,我希望在该时间发生时,执行ipmi下面的命令。。。。。例如,当前时间是031809402015,如果时间达到031809452015,则执行命令,是否有任何方法。非常感谢。谁能帮助我,我无法发布问题。求你了,求你了