You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中初始化含引号与反斜杠的字符串变量?

解决Bash变量/数组保留特殊字符的问题

方法1:单引号包裹(推荐)

Bash中单引号会完全保留内部所有字符的原始形态,不会解析转义符、变量或特殊符号,直接用它包裹目标字符串即可:

# 单个变量赋值
PARAM='-options \'{"version": "http"}\''
# 数组赋值
PARAMS=('-options \'{"version": "http"}\'')

验证输出:

echo "$PARAM"
# 输出:-options \'{"version": "http"}\'
echo "${PARAMS[0]}"
# 输出:-options \'{"version": "http"}\'

方法2:双引号配合双重转义

如果必须使用双引号,需要对反斜杠做双重转义(双引号内反斜杠会被Bash解析),同时引号也需转义:

PARAM="-options \\'{"version": "http"}\\'"
PARAMS=("-options \\'{"version": "http"}\\'"

执行后同样能得到期望的输出结果。

原方法失效原因

你之前的写法PARAMS=(-options \'{"version": "http"}\')中,\'会被Bash解析为单个',反斜杠被当作转义符消耗掉,所以最终字符串里的反斜杠丢失。而单引号包裹时,内部所有字符都会被原样保留。

内容的提问来源于stack exchange,提问作者Ira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 14:55:18