echo 语句中双引号的作用是什么?

echo 语句中双引号的作用是什么?

当编写包含用户消息的 Bash 脚本时,我可以写

echo Processing files...

或者

echo "Processing files..."

在这种情况和许多其他情况下,输出将是相同的。那么什么时候我真正需要双引号,什么时候不需要它们呢?

我明白那个

echo This    is     my      sentence.

echo "This    is     my      sentence."

将产生不同的输出(第一种情况下单词之间有一个空格,第二种情况下保留空格),但是还有其他原因使用双引号吗?或者不是使用双引号?

(我意识到单引号有不同的效果;这个问题具体是关于双倍的引号。)

答案1

原因有很多,但主要有:

  • 更好地控制空白的包含(您注意到了)
  • 部分保护,防止意外的 shell 扩展,例如 glob 字符*?

答案2

这里双引号和单引号之间有一个重要的区别。双引号将在带引号的字符串内插入变量(因为根本不会引用);单引号不会这样做。

相关内容