Skip to content

SC1087 在 Shell Scrpit 正確宣告陣列函數

前陣子在Shell Scrpit 中使用了陣列,宣告陣列的方式跟其他程式語言不同,導致後續問題排除了一段時間。

有問題的代碼:

echo "$array[@]"

正確的代碼:

echo "${array[@]}"

理由:

在一般程式語言中使用$array[index]來讀取陣列,但在shell 會將$array後解釋為不相關的文字串,需要使用大括號來明確地宣告這一段文字是整個陣列的變數。

例外:

如果想要在按照字面意思解釋,請使用${var}[idx]來防止出現此警告,並讓其他人更好閱讀。
此方法不會改變腳本工作方式,但會讓ShellCheck 和其他程序員更明白您的意圖。

參考來源:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。