sh脚本中的boolean表达式

时间:2012-10-02 22:22:42

标签: sh boolean-expression

我有这个简单的脚本,由于if [ ... ]的行而无法运行 谁能告诉我这有什么问题?

#! /bin/sh
if [ $# -ne 2 AND $# -ne 3 ]
then
    echo "Usage $0 <input> <output> [<comment>]"
    exit 1
fi;

谢谢!

1 个答案:

答案 0 :(得分:2)

尝试以下方法:

#! /bin/sh
if [ $# -ne 2 -a $# -ne 3 ]
then
    echo >&2 "Usage $0 <input> <output> [<comment>]"
    exit 1
fi

或者:

#! /bin/sh
if [ $# -ne 2 ] && [ $# -ne 3 ]
then
    echo >&2 "Usage $0 <input> <output> [<comment>]"
    exit 1
fi

如果您想使用bash:

#! /bin/bash
if [[ $# -ne 2 && $# -ne 3 ]]
then
    echo >&2 "Usage $0 <input> <output> [<comment>]"
    exit 1
fi