shell:在if语句中验证多个字母

时间:2018-07-10 18:08:33

标签: bash shell ksh

我知道这是关于验证多个变量的多次询问。但是,这是用于验证单个字母(字母)的if条件。

我有一条这样的声明。参数是从另一个脚本传递的

action=$1
name=$2
gname=$3

echo "action is $action name is $name and gname is $gname" # making sure i got the args passed right

#if [ $action != B ] || [ $action != T ] || [ $action != R ] ; // This WORKS!!
if [ $action != [ B | R | T ]; then // Returns an error
echo "NADA"
exit
fi

if [ $name != SNAP1 ] || [ $name != SNAP2 ] || [ $name != SNAP3 ] ; 
echo "NADA"
exit
fi

我想知道如何比较的不仅仅是3个字母和3个变量。如果我想验证8个以上的字母怎么办,有没有更好的方式编写if语句,如何缩短比较时间?

1 个答案:

答案 0 :(得分:0)

您可以使用case

case "$action" in
   [BRT]) ;;
    *) echo "NADA" ;;
esac