シェルスクリプトのコーディングスタイル問題!case ... in ... ;; esacってどうする?
私の好きなスタイル
# [ -n "$str" ] && cmdとか[ -z "$str" ] && cmd相当に対してのみの場合
case "${FORCE_WGET:-}" in (?*)
WGET_CMD="$(which wget)"
esac ## 任意で;;をつけない
# 分岐が複数の場合
case "${CMD_WGET:+wget}${CMD_CURL:+curl}" in (wget|wgetcurl)
"$CMD_WGET" ...
;;(curl)
"$CMD_CURL" ...
;;esac ## てか;;をつけることを強制したほうがいいんじゃね?
だからどうしたという記事でした。
両カッコとかいるの?そんなところで改行するの?それは適当な議論がなされることでしょう。
編集履歴 2023-03-08
`${CMD_WGET:-wget}`と誤って書いていました。`${CMD_WGET:+wget}`と直しました。これは、「変数CMD_WGETが定義済でありかつ空文字列以外ならばwgetという文字列に置換し、そうでなければ空文字列に置換する」変数展開です。
この記事が気に入ったらサポートをしてみませんか?