bash - Bash 中单引号和双引号的区别

标签 bash shell quotes double-quotes single-quotes

在 Bash 中,单引号('')和双引号("")有什么区别?

最佳答案

单引号不会插入任何内容,但双引号会。例如:变量、反引号、某些 \ 转义等。

例子:

$ echo "$(echo "upg")"
upg
$ echo '$(echo "upg")'
$(echo "upg")

Bash 手册是这样说的:

3.1.2.2 Single Quotes

Enclosing characters in single quotes (') preserves the literal value of each character within the quotes. A single quote may not occur between single quotes, even when preceded by a backslash.

3.1.2.3 Double Quotes

Enclosing characters in double quotes (") preserves the literal value of all characters within the quotes, with the exception of $, `, \, and, when history expansion is enabled, !. The characters $ and ` retain their special meaning within double quotes (see Shell Expansions). The backslash retains its special meaning only when followed by one of the following characters: $, `, ", \, or newline. Within double quotes, backslashes that are followed by one of these characters are removed. Backslashes preceding characters without a special meaning are left unmodified. A double quote may be quoted within double quotes by preceding it with a backslash. If enabled, history expansion will be performed unless an ! appearing in double quotes is escaped using a backslash. The backslash preceding the ! is not removed.

The special parameters * and @ have special meaning when in double quotes (see Shell Parameter Expansion).

关于bash - Bash 中单引号和双引号的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57719393/

相关文章:

java - "5": "6789": "78" , 我们如何提取数字作为标记

BASH 将变量传递给函数

windows - Git 命令在 Windows CMD 中不起作用

linux - 是否有 grep 命令允许我 grep 多个文件夹并使用包含文件名的文本文件复制它们

linux - 使用 ls 命令显示文件按复制时间排序?

linux - Cron 作业无法在 Ubuntu 上运行

sql - 如何在 PostgreSQL 8.3 中将空值写入日期时间数组?

ruby - 如何将cookbook_file与bash结合使用?

python - 按每行的前两个字符拆分大型平面文件

xml - 解析 xml 的 shell 命令运行不正常