ksh有条件的

时间:2010-12-17 19:23:12

标签: conditional ksh

我看起来很简单。

if [ ${FILEDATE} -gt ${MIN} ]; then
    echo $MAX
fi

以上代码有效,但不是这样:

if [ ${FILEDATE} -gt ${MIN} ||  ${FILEDATE} -lt ${MAX}]; then
    echo $MAX
fi

必定存在一些语法问题,但我发现的引用看起来与我的相同。

1 个答案:

答案 0 :(得分:0)

[(在我的系统上它位于/usr/bin/[)实际上是一个程序或builtin,它需要一个像test(1)那样的表达式。与[的独特之处在于它必须以结束]包裹起来。

通过使用shell中的[&&运算符,可以调用||并组合不同的表达式:

if [ ${FILEDATE} -gt ${MIN} ] || [ ${FILEDATE} -lt ${MAX} ]; then #...应该可以正常工作。

您也可以考虑将变量扩展放在 "" 中,即使未定义某个变量也能获得良好的行为;)

另请参阅:Unix test