bash-使用IN的多个条件的IF

时间:2016-04-01 10:14:19

标签: bash shell unix

我有以下脚本来检查是否发生了多种情况。

脚本

#!/bin/bash
echo "1.Add,  2.Sub, 3.Mul, 4.Div"
echo "Enter your choice:"
read ch

#Here i want to check the condition for 1, 01 and also 001
if [ $ch = 1 ]
then
     echo "Addition goes here"
...
...
fi

注意:如何使用IN使用多个条件?

像:

if  [ $ch IN ('1','01','001') ]

2 个答案:

答案 0 :(得分:3)

改为使用case语句:

case $ch in
  1|01|001)
    echo "Addition goes here"
    ;;
  ...
  *)
    echo "Invalid input"
esac

答案 1 :(得分:0)

使用bash,你可以写:

if [[ $ch == @(1|01|001) ]]

[[ ... ]]内,==运算符执行模式匹配,扩展模式@(pattern-list)匹配给定模式中的一个或多个。

文档:
https://www.gnu.org/software/bash/manual/bashref.html#Conditional-Constructs
https://www.gnu.org/software/bash/manual/bashref.html#Pattern-Matching