如何在bash shell中的case语句中使用数组?
How to use array in case statement in bash shell?
在编写 bash 脚本时,我遇到了一个问题,我想在 运行 命令的 case 语句中使用数组。
例如,如果我的数组包含
1 2 3
我的情况有条件
1)
echo "Hello"
;;
2)
echo "call"
;;
3)
echo "bye"
;;
*)
echo "Unknown"
;;
然后打印输出
Hello
call
bye
我的数组中存储的所有项目都应该检查条件。
在这样做的同时我尝试了这个
case ${!arr[@]} in
1)
echo "Hello"
;;
2)
echo "call"
;;
3)
echo "bye"
;;
*)
echo "Unknown"
;;
esac
但没有成功任何人都可以帮助我。
如果有错误。请不要标记我的 post
您必须遍历数组,然后依次将 case 语句应用于每个元素:
for element in "${arr[@]}"; do
case ${element} in
1)
echo "Hello"
;;
2)
echo "call"
;;
3)
echo "bye"
;;
*)
echo "Unknown"
;;
esac
done
在编写 bash 脚本时,我遇到了一个问题,我想在 运行 命令的 case 语句中使用数组。
例如,如果我的数组包含
1 2 3
我的情况有条件
1)
echo "Hello"
;;
2)
echo "call"
;;
3)
echo "bye"
;;
*)
echo "Unknown"
;;
然后打印输出
Hello
call
bye
我的数组中存储的所有项目都应该检查条件。
在这样做的同时我尝试了这个
case ${!arr[@]} in
1)
echo "Hello"
;;
2)
echo "call"
;;
3)
echo "bye"
;;
*)
echo "Unknown"
;;
esac
但没有成功任何人都可以帮助我。
如果有错误。请不要标记我的 post
您必须遍历数组,然后依次将 case 语句应用于每个元素:
for element in "${arr[@]}"; do
case ${element} in
1)
echo "Hello"
;;
2)
echo "call"
;;
3)
echo "bye"
;;
*)
echo "Unknown"
;;
esac
done