Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2804

Bash で set -u しているときに変数が定義されているかどうかをチェックする

$
0
0

Bash で変数が定義されているかどうかを確認するときは -n-zを使う。

if[-z"${FOO}"];then# FOO が未定義時の処理fi

しかし set -uしているときは使えない。

set-uif[-z"${FOO}"];then# FOO が未定義時の処理fi
FOO: unbound variable

Bash v4 以上であれば -vが使えるらしい。
参考: set -uしてるときに変数が定義されてるかチェックする - Qiita

if[[!-v FOO ]];then# FOO が未定義時の処理fi

しかし macOS (Bug Sur 時点) に入っている Bash は v3 なので、この方法は使えない。

Bash v3 以下では、デフォルト値を使って工夫すれば以下のように書くことで実現できる。
参考: Bash v3 以下でも set -u 時に変数が定義されてるか確認する方法 / マスタカの ChangeLog メモ

if[-z"${FOO:-}"];then# FOO が未定義時の処理fi

Viewing all articles
Browse latest Browse all 2804

Trending Articles