测试是否在zsh中设置了变量的规范/惯用方法是什么?
if ....something.... ; then
print "Sweet, that variable is defined"
else
print "That variable is not defined"
fi
答案 0 :(得分:13)
在Zsh中执行此操作的典型方法是:
if (( ${+SOME_VARIABLE} )); then
例如:
if (( ${+commands[brew]} )); then
brew install mypackage
else
print "Please install Homebrew first."
fi
在Zsh 5.3及更高版本中,您可以在条件表达式中使用-v
运算符:
if [[ -v SOME_VARIABLE ]]; then
符合POSIX的测试将是
if [ -n "${SOME_VARIABLE+1}" ]; then
答案 1 :(得分:5)
在条件表达式中使用-v
(在zsh
5.3)运算符中引入。
% unset foo
% [[ -v foo ]] && echo "foo is set"
% foo=
% [[ -v foo ]] && echo "foo is set"
foo is set