一般在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里判断。