寻找查看 bash 变量并确定其是否为空的正确语法,如果是则执行...否则继续。
也许像if [ $lastUpdated = null?; then... else...
寻找查看 bash 变量并确定其是否为空的正确语法,如果是则执行...否则继续。
也许像if [ $lastUpdated = null?; then... else...
只需测试变量是否为空:
if [ -z "$lastUpdated" ]; then
# not set
fi
扩展@chepner 的评论,这是您如何测试未设置(而不是设置为可能为空的值)变量的方法:
if [ -z "${lastUpdated+set}" ]; then
如果未设置,${variable+word}
语法给出一个空字符串,如果$variable
设置了,则给出字符串“word”:
$ fullvar=somestring
$ emptyvar=
$ echo "<${fullvar+set}>"
<set>
$ echo "<${emptyvar+set}>"
<set>
$ echo "<${unsetvar+set}>"
<>
总结一下:bash 中没有真正的空值。切普纳的评论是正确的:
bash 文档使用 null 作为空字符串的同义词。
因此,检查 null 意味着检查空字符串:
if [ "${lastUpdated}" = "" ]; then
# $lastUpdated is an empty string
fi
如果您真正想要做的是检查未设置或空(即“”,即“空”)变量,请使用 trojanfoe 的方法:
if [ -z "$lastUpdated" ]; then
# $lastUpdated could be "" or not set at all
fi
如果您想检查天气变量未设置,但可以使用空字符串,Gordon Davisson 的答案是要走的路:
if [ -z ${lastUpdated+set} ]; then
# $lastUpdated is not set
fi
(参数扩展是这里发生的事情)