Bash - 比较参数"是"

时间:2014-11-21 14:13:13

标签: linux bash sh

我想测试第一个参数是否是以下之一:" ABC"或" DEF"或" GHI"。

如果不是 - 打印使用并退出。

3 个答案:

答案 0 :(得分:4)

if [[ "$1" =~ ^(ABC|DEF|GHI)$ ]]; then
  echo "usage"
  exit
fi

答案 1 :(得分:2)

这种情况在sh和bash中运行:

case "$1" in
    'ABC' | 'DEF' | 'GHI') ;;
    *) echo "usage"
       exit;;
esac

答案 2 :(得分:0)

您可以使用带有字符串比较的普通if语句:

if [ "$1" != "ABC" -a "$1" != "DEF" -a "$1" != "GHI" ]; then
    echo "Usage: $0 ABC|DEF|GHI"
    exit 0
fi

或者:

if [ "$1" = "ABC" -o "$1" = "DEF" -o "$1" = "GHI" ]; then
    # Do something.
else
    echo "Usage: $0 ABC|DEF|GHI"
    exit 0
fi