我正在学习Bash,我看到了这个形式
C =示例
回声"$ C"
给出相同的表格结果
C = "示例"
echo $ C.
我想知道是否更好地将""放在变量的赋值中或者在$之后.或者如果它无动于衷.或者如果一个人认为比另一个人"更美丽".
如果您确定变量的值是单个单词(没有空格),则可以使用$varname或${varname}.如果你不能保证这一点,那么你应该使用"$varname"或"${varname}".请注意,bash在解释命令之前会进行分词,因此如果不引用表达式,实际上可能会出现语法错误,例如
C="white space"
if [ -z $C ]
then
...
fi
Run Code Online (Sandbox Code Playgroud)
将导致语法错误:
-bash: [: white: binary operator expected
Run Code Online (Sandbox Code Playgroud)
虽然这很好:
C="white space"
if [ -z "$C" ]
then
...
fi
Run Code Online (Sandbox Code Playgroud)
这是因为在第一个未引用的情况下变量扩展后bash看到了这样的事实:
if [ -z white space ]
then
...
fi
Run Code Online (Sandbox Code Playgroud)
并且-z运算符只需要一个,而不是两个参数.在第二个,引用案例bash看到这个:
if [ -z "white space" ]
then
...
fi
Run Code Online (Sandbox Code Playgroud)
即只需要一个参数.另请注意,引号用于赋值
C="white space"
Run Code Online (Sandbox Code Playgroud)
因为如果你写的话它也会产生错误
C=white space
Run Code Online (Sandbox Code Playgroud)
因为这意味着:执行space包含添加变量的环境的命令C=white.
因此,通常您应该引用这些表达式,以确保您的代码对不可预见的变量值更加健壮.如果变量值来自输入,文件等,则尤其如此.通常可以放弃整数变量的引号,或者只想显示变量的值echo $C.
| 归档时间: |
|
| 查看次数: |
337 次 |
| 最近记录: |