在linux shell中,要字面显示$符号需转义或用单引号:用\$或'$'可防止变量展开,如echo \$home输出$home;混用引号或花括号可部分展开,如echo "user: $user, cost: $10"。

在 Linux Shell 中,美元符号 $ 本身是变量引用和特殊扩展的起始符,所以如果想**字面显示一个 $ 符号**(而不是让它被解释为变量或命令替换),就必须进行转义或使用不解析特殊字符的引号。
用反斜杠转义 $
最直接的方式是在 $ 前加反斜杠 ,告诉 shell 把它当作普通字符处理:
-
echo $HOME→ 输出:$HOME(不是 /home/username) -
echo "Price: $5"→ 输出:Price: $5
用单引号包裹含 $ 的字符串
单引号 ' ' 会完全禁用所有特殊字符的解释,包括 $、`、 等:
-
echo '$USER $PATH'→ 输出:$USER $PATH(原样打印) - 注意:单引号内不能嵌套单引号,也不能做变量插值
需要显示 $ 但又想保留部分变量展开时
可混合使用单引号和双引号,或用花括号明确边界 + 转义:
-
echo "User: $USER, cost: $10"→ 输出:User: alice, cost: $10 -
echo "Value of ${PATH} is: $PATH"→ 输出:Value of ${PATH} is: /usr/bin:/bin
避免常见误解
不要写 echo "$$HOME" —— 这会被解释为变量 $$(当前进程 PID)拼接字符串 HOME,结果类似 12345HOME;真要显示 $HOME,必须写成 "$HOME" 或 '$HOME'。











