Zsh 检查“是否”;以x";的值命名的参数;设定
我目前使用的代码如下:Zsh 检查“是否”;以x";的值命名的参数;设定,zsh,Zsh,我目前使用的代码如下: if (( $( eval "echo \${+$foo}" ) )); then ./my-prog fi 有没有更优雅或简洁的方式来表达这一点?最初我试过了 if (( ${+${(P)foo}} )); then ./my-prog fi 但这引发了“错误替换”错误。(p)和+可以在相同的参数展开中使用,如果使用顺序正确: if (( ${(P)+foo} )); then ./my-prog fi (p)和+可以在相同的参数展
if (( $( eval "echo \${+$foo}" ) )); then
./my-prog
fi
有没有更优雅或简洁的方式来表达这一点?最初我试过了
if (( ${+${(P)foo}} )); then
./my-prog
fi
但这引发了“错误替换”错误。(p)
和+
可以在相同的参数展开中使用,如果使用顺序正确:
if (( ${(P)+foo} )); then
./my-prog
fi
(p)
和+
可以在相同的参数展开中使用,如果您按正确的顺序使用它们:
if (( ${(P)+foo} )); then
./my-prog
fi
还有
-v
操作符,它排除了间接参数扩展的需要:
if [[ -v $foo ]]; then
./my-prog
fi
这记录在条件表达式部分的
man zshmisc
中。还有-v
运算符,它排除了间接参数扩展的需要:
if [[ -v $foo ]]; then
./my-prog
fi
这在条件表达式部分的
man zshmisc
中有记录。谢谢,不管怎样,这对我想到的情况比较好。谢谢,不管怎样,这对我想到的情况比较好。