<分区>
我明白单引号和双引号的用法。
但我不知道脚本中需要双引号的情况。
声明没有差异
$ echo hello world! $1
$ echo "hello world! $1"
请告诉我普通引号和双引号之间的区别。
<分区>
我明白单引号和双引号的用法。
但我不知道脚本中需要双引号的情况。
声明没有差异
$ echo hello world! $1
$ echo "hello world! $1"
请告诉我普通引号和双引号之间的区别。
最佳答案
让我们考虑一个包含这些文件的目录:
$ ls foo*
foo111.txt foo11.txt foo1.txt
让我们考虑一下您的脚本的一个小变化:
$ cat script
#!/bin/sh
echo No quotes $1
echo "Double quotes $1"
现在,让我们运行它:
$ bash script "foo*"
No quotes foo111.txt foo11.txt foo1.txt
Double quotes foo*
如您所见,结果完全不同。如果没有双引号,将执行路径名扩展。
为了说明另一个区别:
$ bash script "long space"
No quotes long space
Double quotes long space
使用双引号,单词之间的长空格被保留。没有它,所有连续的空白将被替换为一个空白。这是一个分词的例子。
关于linux - 为什么我在 shell 脚本中使用双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38757649/