我有几个问题我想回答,因为我不是一个专家猛砸到目前为止......有几个条件,我需要执行一个特定的前检查任务,但他们中的一些是相关的,不能分离:我想检查下面的语句:嵌套条件(如[...)
if ((1 OR 2) AND (3 OR 4))
then
blabla...
fi
我做了这个迄今为止,
if [[ "[ `echo "$5" | cut -c 1-2` -lt 0 || `echo "$5" | cut -c 1-2` -gt 23 ]" && "[ `echo "$5" | cut -c 4-5` -lt 0 || `echo "$5" | cut -c 4-5` -gt 23 ]" ]]
then
echo "La plage horaire indiquée n'est pas valide ! Format = HH-HH"
exit 3
fi
和它工作正常。我有一种感觉,有什么东西要容易得多,可以为了执行该检查可以做,但我看不出...
而第二件事,在我上面写的代码,你可以看到这一点:
"[ `echo "$5" | cut -c 1-2` -lt 0 || `echo "$5" | cut -c 1-2` -gt 23 ]"
简单方括号对应于测试功能,是吗?那么为什么在把双引号放在正确的位置呢?我知道我不能在那里加任何反引号,这对我的回声“5美元”是没有任何意义的......但是双引号应该替换特殊字符,比如$和防止忽略单个空格,所以为什么它取代了[角色?它被认为是这些特殊字符之一吗?
预先感谢您为您解答!
嗯...奇怪,我敢肯定,我以前试过,语法,我得到了一个错误,但现在的工作......我必须在此期间已经改变了这个东西无关。 谢谢你的回答,我想我无法再让这个表达式变得更简单了,即使你强调了一个有趣的观点(我不会调用测试操作符[在我的表达式中再也不会这样了,也许它会花费更少资源......)! – SonicGold 2011-05-06 11:12:39