Quelle est la manière canonique/idiomatique de tester si une variable a été définie dans zsh?
if ....something.... ; then
print "Sweet, that variable is defined"
else
print "That variable is not defined"
fi
Voici la réponse SO pour bash .
La façon typique de le faire dans Zsh est:
if (( ${+SOME_VARIABLE} )); then
Par exemple:
if (( ${+commands[brew]} )); then
brew install mypackage
else
print "Please install Homebrew first."
fi
Dans Zsh 5.3 et versions ultérieures, vous pouvez utiliser le -v
opérateur dans une expression conditionnelle:
if [[ -v SOME_VARIABLE ]]; then
Le test conforme POSIX serait
if [ -n "${SOME_VARIABLE+1}" ]; then
Utilisez le -v
(introduit dans zsh
5.3) dans une expression conditionnelle.
% unset foo
% [[ -v foo ]] && echo "foo is set"
% foo=
% [[ -v foo ]] && echo "foo is set"
foo is set