寻找查看bash变量的正确语法并确定其是否为null,如果是,则执行...否则继续。
也许像if [ $lastUpdated = null?; then... else...
答案 0 :(得分:12)
只测试变量是否为空:
if [ -z "$lastUpdated" ]; then
# not set
fi
答案 1 :(得分:3)
扩展@chepner的评论,这里是你如何测试未设置(而不是设置为可能为空的值)变量:
if [ -z "${lastUpdated+set}" ]; then
${variable+word}
语法在未设置$variable
时给出空字符串,如果设置了字符串则为“word”:
$ fullvar=somestring
$ emptyvar=
$ echo "<${fullvar+set}>"
<set>
$ echo "<${emptyvar+set}>"
<set>
$ echo "<${unsetvar+set}>"
<>
答案 2 :(得分:3)
总结一下:bash中没有真正的 null 值。切普纳的评论就在于:
bash文档使用null作为空字符串的同义词。
因此,检查null意味着检查空字符串:
if [ "${lastUpdated}" = "" ]; then
# $lastUpdated is an empty string
fi
如果您真正想做的是检查未设置或空(即&#34;&#34;,即&#39; null &# 39;)变量,使用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
(Parameter Expansion就是这里的事情)