error=和error=''之间的区别是什么?

4
在Bash中,这两种变量定义有区别吗?
error=
error=''

在对它们进行空值/未设置的测试后,似乎表明它们是相等的,但我仍然想要确认。


1
不,完全没有任何区别。 - gniourf_gniourf
@gniourf_gniourf,为什么不回答问题,反而添加评论呢?我很好奇。 - Amarnasan
1
@Amarnasan,我懒得给出比“没有区别”更详细的答案。但你逼我多做一点工作来给出更完整的答案 :( - gniourf_gniourf
2
你得到了30分!耶呀呀呀呀!!! - Amarnasan
1个回答

8

简短回答:没有任何差异。


来自 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=""

它们确实看起来一模一样!


空值和空字符串是相同的吗? - helpermethod
3
引号并不定义一个字符串;它们仅仅是用来转义字符串中的所有字符。空值只是空字符串的另一个名称,因此 v1=''v1= 是相同的,就像 v1='foo'v1=foo(以及 v1=\f\o\o)一样相同。 - chepner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接