echo $var 和 echo "$var" 有什么区别

echo $var 和 echo "$var" 有什么区别

在终端(bash)上输入

var=someValue

echo $var    --> 1
echo "$var"  --> 2

表格 1 和 2 我得到了相同的结果,那么它们之间有什么区别?

什么时候应该使用双引号,什么时候不应该使用双引号?

答案1

echo $var和之间没有区别echo "$var"

然而对于其他命令(如ls列出文件)可能会有很大差异。

在你的终端上尝试一下:

$ touch "File A"

$ var="File A"

$ ls $var
ls: cannot access 'File': No such file or directory
ls: cannot access 'A': No such file or directory

$ ls "$var"
File A

双引号"告诉 Linux 将中间的所有内容视为单个实体。如果没有双引号,则其中的所有内容将被视为由空格划定的单独实体。

因此,第一个例子中$var有两个不同的东西“文件”和“A”。

第二个例子中"$var"是一件事"File A"

echo命令会自动将单个单词或多个单词(直到行尾)作为一个事物来处理。许多其他命令需要一个或多个事物。

答案2

当您将多行字符串存储在变量中并尝试回显它时,就会出现差异。

尝试这个:

$var="this is a
line of
code"

$ echo $var
this is a line of code

$ echo "$var"
this is a
line of
code

相关内容