标签: conditional ksh
我看起来很简单。
if [ ${FILEDATE} -gt ${MIN} ]; then echo $MAX fi
以上代码有效,但不是这样:
if [ ${FILEDATE} -gt ${MIN} || ${FILEDATE} -lt ${MAX}]; then echo $MAX fi
必定存在一些语法问题,但我发现的引用看起来与我的相同。
答案 0 :(得分:0)
[(在我的系统上它位于/usr/bin/[)实际上是一个程序或builtin,它需要一个像test(1)那样的表达式。与[的独特之处在于它必须以结束]包裹起来。
[
/usr/bin/[
builtin
test(1)
]
通过使用shell中的[和&&运算符,可以调用||并组合不同的表达式:
&&
||
if [ ${FILEDATE} -gt ${MIN} ] || [ ${FILEDATE} -lt ${MAX} ]; then #...应该可以正常工作。
if [ ${FILEDATE} -gt ${MIN} ] || [ ${FILEDATE} -lt ${MAX} ]; then #...
您也可以考虑将变量扩展放在 "" 中,即使未定义某个变量也能获得良好的行为;)
""
另请参阅:Unix test。