我有几个问题想回答,因为到目前为止我还不是 Bash 专家......在执行特定任务之前我需要检查几个条件,但其中一些是相关的并且不能分离:我会像下面要检查的语句:
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 ]"
简单的方括号对应于测试功能,对吧?那么为什么在放置双引号时正确调用它呢?我知道我不能在那里放任何反引号,这对我的 echo "$5"... 没有任何意义,但是双引号应该替换特殊字符,例如 $ 并防止忽略单个空格,所以为什么是它取代了 [ 字符?它是否被视为这些特殊字符之一?
预先感谢您的回答!