我可以通过以下方式定义Bash shell变量:
[root@localhost ~]# A=BCD
[root@localhost ~]# echo $A
BCD
[root@localhost ~]# A="BCD"
[root@localhost ~]# echo $A
BCD从echo输出中,我看不到A=BCD和A="BCD"之间的区别,因此我认为它们是相同的。是对的吗?
顺便说一句,如果它们是相同的,A=和A=""也应该是一样的。是对的吗?
发布于 2015-03-26 07:53:35
在这种情况下,没有区别,因为BCD没有对shell具有特殊意义的字符。引号用于防止某些字符被shell解释,如空格、管道、符号和美元。试着在你的例子中加入其中一些,你就会发现其中的不同之处。引号也用于屏蔽来自空白空间和空字符串的脚本输入。试试这个:
A="A B C" ; echo $A
A=A B C ; echo $A我的建议是:永远使用它们。他们从不伤害和使事情更可预测,使空字符串显化。
https://stackoverflow.com/questions/29272608
复制相似问题