
SC1087 在 Shell Scrpit 正確宣告陣列函數
本文目錄共 5 節
前陣子在Shell Scrpit 中使用了陣列,宣告陣列的方式跟其他程式語言不同,導致後續問題排除了一段時間。
有問題的代碼:
echo "$array[@]"
正確的代碼:
echo "${array[@]}"
理由:
在一般程式語言中使用$array來讀取陣列,但在shell 會將$array後解釋為不相關的文字串,需要使用大括號來明確地宣告這一段文字是整個陣列的變數。
例外:
如果想要在按照字面意思解釋,請使用${var}來防止出現此警告,並讓其他人更好閱讀。
此方法不會改變腳本工作方式,但會讓ShellCheck 和其他程序員更明白您的意圖。
參考來源:
收錄於「#Shell 腳本」系列手札

獨立技術專刊推播
訂閱技術電子報
有新文章發布時寄送到您的信箱,不發送垃圾信。