少于 1 分钟阅读 次阅读

Shell(如 Bash) 中,单引号 ' ' 和双引号 " " 都用于引用字符串,但它们对变量、命令替换和转义字符的处理方式完全不同。

1️⃣ 单引号 ' '强引用

单引号中的内容会被 逐字解释,Shell 不会做任何解析

示例

name=Tom
echo '$name'

输出:

$name

因为:

  • $name 被当作普通字符
  • 不会变量展开
  • 不会命令替换
  • 不会识别转义字符

2️⃣ 双引号 " "弱引用

双引号允许 Shell 做部分解析,主要是:

  • 变量替换
  • 命令替换
  • 转义部分字符

示例

name=Tom
echo "Hello $name"

输出:

Hello Tom

3️⃣ 双引号支持的功能

变量展开

echo "User: $USER"

命令替换

echo "Today is $(date)"

转义字符

在双引号中,反斜杠 \ 仍然有效:

echo "He said \"Hello\""

输出:

He said "Hello"

4️⃣ 单引号 vs 双引号对比表

特性 单引号 ' ' 双引号 " "
变量 $var ❌ 不展开 ✅ 展开
命令替换 $( ) ❌ 不执行 ✅ 执行
反斜杠转义 \ ❌ 无效 ✅ 有限有效
通配符 * 不展开 不展开
用途 原样字符串 需要变量的字符串

留下评论