我正在编写一个脚本,用于检查文件中的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
}
我想修改它,以便如果条件不匹配则重新运行并且我需要最终输出的帮助,所以如果两个条件都通过了测试输出"所有条件都通过"
答案 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的条件,那么您将设置为执行您要求的操作,在允许您的脚本继续之前检查条件。