我声明了两个变量但未设置:
__var1=
__var2=
Run Code Online (Sandbox Code Playgroud)
现在我设置__var2有一些价值:
__var2=1
Run Code Online (Sandbox Code Playgroud)
当我尝试进行这样的检查时:
[ -z "$__var1" -a -z "$__var2" ] || echo "Both missing!"
Run Code Online (Sandbox Code Playgroud)
我收到了这条消息Both missing!。但这是不正确的。
这是为什么?以及如何进行正确的检查,看看它们是否都丢失了?
如果用户想要检查变量是否确实未设置而不仅仅是空值,您可以这样做:
$ A=1234
$ [[ -z ${A+.} ]] && echo "Variable is unset."
$ A=
$ [[ -z ${A+.} ]] && echo "Variable is unset."
$ unset A
$ [[ -z ${A+.} ]] && echo "Variable is unset."
Variable is unset.
Run Code Online (Sandbox Code Playgroud)
在你的情况下它可能是
[[ -z ${__var1+.} && -z ${__var2+.} ]] && echo "Both variables are unset!"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2908 次 |
| 最近记录: |