[英]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
但它沒有解決任何人可以幫助我。
如果有什么錯誤。 請不要標記我的帖子
您必須遍歷數組,從而依次將 case 語句應用於每個元素:
for element in "${arr[@]}"; do
case ${element} in
1)
echo "Hello"
;;
2)
echo "call"
;;
3)
echo "bye"
;;
*)
echo "Unknown"
;;
esac
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.