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

Boh*_* LI 1 bash

当我输入时在终端 (bash) 上

var=someValue

echo $var    --> 1
echo "$var"  --> 2
Run Code Online (Sandbox Code Playgroud)

Form 1 和 Form 2 我得到的结果是一样的,那么它们之间有什么区别呢?

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

Win*_*nix 5

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
Run Code Online (Sandbox Code Playgroud)

双引号"告诉 Linux 将两者之间的所有内容视为单个实体。如果没有双引号,里面的所有内容都被视为由空格分隔的单独实体。

所以在第一个例子中$var是两个不同的东西“文件”和“A”。

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

echo命令会自动将单个单词或多个单词作为一件事处理,直到行尾。许多其他命令期望一个或多个东西。