Правильно ли использовать неназначенную переменную? - PullRequest
2 голосов
/ 08 марта 2020

Мне было интересно, правильно ли это в Bash, скажем, для печати, возможно, неназначенной строки:

if [[ test ]]; then
  str="foo"
fi

printf "foo or empty: %s" "$str"

Или я должен назначить значение по умолчанию вне оператора if, например str=""

Я не получаю никаких ошибок, поэтому кажется, что все в порядке.

1 Ответ

1 голос
/ 08 марта 2020

Это нормально, если не установлена ​​опция -u.

$ unset foo
$ echo $foo

$ set -u
$ echo $foo
bash: foo: unbound variable
$

Некоторые присваивают значение по умолчанию, как вы упомянули, а некоторые ссылаются на них как ${foo-}, чтобы избежать этой ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...