簡體   English   中英

如何在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

但它沒有解決任何人可以幫助我。

如果有什么錯誤。 請不要標記我的帖子

您必須遍歷數組,從而依次將 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM