我想知道是否有任何方法可以同时处理多个变量,如下所示:
#/bin/bash
arr1=(1 2)
arr2=(3 4)
foo=1
bar=2
case $foo && $bar in
${arr1[@]})
echo "variables equal array 1!";;
${arr2[@]})
echo "variables equal array 2!";;
*)
echo "variables do not exactly equal any array!";;
esac
Run Code Online (Sandbox Code Playgroud)
我不想将$foo
和$bar
本身放入数组中,但如果绝对必要,我可以这样做。
假设IFS
\xe2\x80\x99 尚未更改其默认值:
case "$foo $bar" in\n"${arr1[*]}") echo "variables equal array 1!" ;;\n"${arr2[*]}") echo "variables equal array 2!" ;;\n*) echo "variables do not exactly equal any array!" ;;\nesac\n
Run Code Online (Sandbox Code Playgroud)\n仅当每个数组中存储的各个值中不存在分隔符(空格)时,这才是可靠的。
\n