重新运行if / else语句?

时间:2015-05-19 13:43:13

标签: bash

我正在编写一个脚本,用于检查文件中的2个值。两个值都必须通过才能在脚本中继续,但我在整个检查过程中遇到了麻烦

#Run Checks 
savedStateTestHot{
#Call HotPatch GoldSavedState.properties;
if[StateDate == SpecficDate];then
    echo "StateDate Matches"
else
    echo "StateDate Does Not Match Cancel"
    #Rerun after 180 seconds to match the polling trigger 
    Rerun();

fi

if[StateStatus == SpecficStatus];then
    echo "StateStatus Matches"
else 
    echo "StateStatus Does Not Match Cancel"
    #Rerun after 180 seconds to match the polling trigger 
    Rerun();
fi
}

我想修改它,以便如果条件不匹配则重新运行并且我需要最终输出的帮助,所以如果两个条件都通过了测试输出"所有条件都通过"

2 个答案:

答案 0 :(得分:1)

  

空间在bash中至关重要

if语句的格式为:

if [ something == something ] ...

if [[ something == something ]] ...

如果StateDate等变量,则需要使用"$StateDate"

  

bash函数的格式为funcname(){}而非funcname{}

如果条件不满足,您可以使用while循环返回初始点。 例如:

while true;do
read p
if [ "$p" == "y" ];then
break
fi
done

在上面的例子中,如果你输入y,它将符合条件并打破循环。

答案 1 :(得分:0)

在shell中,你可以像这样使用while循环:

while [ condition ]
do
    command1
    command2
    commandN
done

因此,如果您更改了两个ifcase的条件,那么您将设置为执行您要求的操作,在允许您的脚本继续之前检查条件。