参见英文答案 > When to wrap quotes around a shell variable? 5个
我理解使用单引号和双引号.
但我不知道情况需要在脚本中加双引号.
这些陈述没有差异
$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
使用双引号,保留单词之间的长空格.没有它,所有连续的空格都被替换为一个空格.这是分词的一个例子.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。