在Bash中,这两种变量定义有区别吗?
error=
error=''
在对它们进行空值/未设置的测试后,似乎表明它们是相等的,但我仍然想要确认。
error=
error=''
在对它们进行空值/未设置的测试后,似乎表明它们是相等的,但我仍然想要确认。
简短回答:没有任何差异。
来自 POSIX 参考文献的 变量赋值部分:
In the shell command language, a word consisting of the following parts:
varname=value
在下方几行中,您会看到:
如果未指定value,则变量应给予一个空值。
要检查这个问题(在Bash中):
$ variable1=
$ variable2=''
$ declare -p variable{1,2}
declare -- variable1=""
declare -- variable2=""
它们确实看起来一模一样!
v1=''
和 v1=
是相同的,就像 v1='foo'
和 v1=foo
(以及 v1=\f\o\o
)一样相同。 - chepner
:(
。 - gniourf_gniourf