📌  相关文章
📜  Shell脚本和Linux中单引号和双引号的区别(1)

📅  最后修改于: 2023-12-03 15:34:58.289000             🧑  作者: Mango

Shell脚本和Linux中单引号和双引号的区别

在Shell脚本和Linux中,单引号和双引号作为字符串的引用符号,在使用时有一些区别。

单引号

使用单引号引用的字符串,其中的特殊字符被禁用,即使其中包含的变量也不会被扩展。单引号中的所有内容都会被当作纯字符对待。

例如:

echo 'Hello $USER'

输出:

Hello $USER

可以看到,单引号中的$USER并没有被扩展。此外,单引号也不能转义单引号本身,因为单引号不能嵌套。

双引号

使用双引号引用的字符串,其中的特殊字符会被扩展,变量也会被扩展。双引号中的变量会被解析,并且可以使用 \ 转义双引号本身。

例如:

echo "Hello $USER"

输出:

Hello xxx  # xxx为当前用户

在双引号中,可以使用以下转义字符:

| 转义字符 | 作用 | | -------- | ---------------------- | | \ | 反斜线 | | " | 双引号 | | \t | 水平制表符(Tab键) | | \r | 回车符 | | \n | 换行符 | | \$ | 美元符号 | | \\ | 反斜线 | | \[ | 开始非配对方括号的文本 | | \] | 结束非配对方括号的文本 |

使用双引号还有一个常见的用途,就是将一段命令输出的内容作为字符串传递给另一个命令处理。例如:

echo "Today is $(date +%A)"

输出:

Today is Friday

以上命令会在双引号中执行 date 命令,并将输出结果插入到字符串中。

总结

单引号和双引号在字符串引用时的区别主要在于特殊字符的扩展方式和变量的解析方式。在使用时需要根据实际情况选择合适的引用方式,以避免不必要的错误。