環境
vscode
拡張機能BASH Extension Pack
今回扱うのはBASH Extension Pack内のshellcheck
次のようなbashファイルを書いていたとき次のようなメッセージが表示された。
loop.bash
#!/bin/bash
num=(12 14 18 44 53 80 87 114)
for i in $num; do
echo ${i}
done
shell checkによるエラーメッセージ
Expanding an array without an index only gives the first element.shellcheckSC2128
どうやら配列の一つ目の要素しかループで取り出せないらしい。
実行結果
$ ./loop.bash
12
以下のように書き換えるとすべての要素が取得できた。
loop.bash
#!/bin/bash
num=(12 14 18 44 53 80 87 114)
for i in "${num[@]}"; do
echo ${i}
done
変更部分はループの
$num->"${num[@]}"
です。
実行結果
$ ./loop.bash
12
14
18
44
53
80
87
114