shell中判断变量值是否存在在list中!!!

一般在shell中判断值是否存在一个列表中时我们会第一想到case,比如这样:

abc(){
   echo "abc"
}
abb(){
   echo "abb"
}
case $1 in 
     abc)
        abc
     ;;
     abb)
        abb
     ;;
     *)
        echo "error"
     ;;
esac

case语句这样去执行还不如直接外部传入值里面直接执行$1...,case还是比较适用于交互脚本。

for的话遍历实现,效果更惨。

所以找到这个语法实现:

var=$1
abc(){
   echo "abc"
}
abb(){
   echo "abb"
}
list_name="abc abb"   ###定义list
if [[ "$list_name" =~ "$var" ]]
then
    ${var}
fi

这样传进来的值,直接全部去list里判断。

你可能感兴趣的:(shell,if)