我理解使用单引号和双引号.
但我不知道情况需要在脚本中加双引号.
这些陈述没有差异
$ echo hello world! $1
$ echo "hello world! $1"
Run Code Online (Sandbox Code Playgroud)
请告诉我正常和双引号之间的差异.
让我们考虑一下这些文件的目录:
$ ls foo*
foo111.txt foo11.txt foo1.txt
Run Code Online (Sandbox Code Playgroud)
让我们考虑一下脚本的一个小变化:
$ cat script
#!/bin/sh
echo No quotes $1
echo "Double quotes $1"
Run Code Online (Sandbox Code Playgroud)
现在,让我们运行它:
$ bash script "foo*"
No quotes foo111.txt foo11.txt foo1.txt
Double quotes foo*
Run Code Online (Sandbox Code Playgroud)
如您所见,结果完全不同.如果没有双引号,则执行路径名扩展.
为了说明另一个区别:
$ bash script "long space"
No quotes long space
Double quotes long space
Run Code Online (Sandbox Code Playgroud)
使用双引号,保留单词之间的长空格.没有它,所有连续的空格都被替换为一个空格.这是分词的一个例子.
| 归档时间: |
|
| 查看次数: |
1053 次 |
| 最近记录: |