概要
etc/lib/ 配下のシェルスクリプトにshellcheckのerrorレベル警告が残っている。
make lint でエラーなしの状態にする。
対象ファイル
etc/lib/standard.sh
etc/lib/vital.sh
エラー内容
SC2145 (error): Argument mixes string and array
# Before (エラー)
echo "message $@"
# After (修正)
echo "message $*"
# または
echo "message" "$@"
$@ は配列展開されるため、文字列リテラルと混合できない。
- 単一文字列として扱う場合:
$* を使用
- 個別引数として渡す場合: 文字列と分離
SC1087 (error): Use braces when expanding arrays
# Before (エラー)
echo $array[0]
# After (修正)
echo "${array[0]}"
SC2166 (warning): Prefer [ p ] && [ q ] as [ p -a q ] is not well defined
# Before
[ -f "$1" -a -r "$1" ]
# After
[ -f "$1" ] && [ -r "$1" ]
SC2164 (warning): Use 'cd ... || exit' in case cd fails
# Before
cd "$dir"
# After
cd "$dir" || exit
実行コマンド
# エラー確認
make lint 2>&1 | grep -E "etc/lib/"
# 修正後の確認
make lint
注意事項
- これらのファイルは初期化スクリプトで使用されるライブラリ
- 動作確認:
make init が正常に動作すること
- 既存の関数シグネチャは維持(呼び出し元への影響を避ける)
参考
概要
etc/lib/配下のシェルスクリプトにshellcheckのerrorレベル警告が残っている。make lintでエラーなしの状態にする。対象ファイル
etc/lib/standard.shetc/lib/vital.shエラー内容
SC2145 (error): Argument mixes string and array
$@は配列展開されるため、文字列リテラルと混合できない。$*を使用SC1087 (error): Use braces when expanding arrays
SC2166 (warning): Prefer [ p ] && [ q ] as [ p -a q ] is not well defined
SC2164 (warning): Use 'cd ... || exit' in case cd fails
実行コマンド
注意事項
make initが正常に動作すること参考