Shell脚本中如何打印转义命令字符串的无转义符原始精确值
实现方法
你使用的是Bash的ANSI-C引号($'string')语法定义变量,这类语法在赋值阶段就已经自动处理了字符串内的转义字符,变量内部存储的就是无多余转义的目标命令,直接用printf输出即可:
# 直接输出变量原始内容 printf '%s\n' "$cmd"
输出结果完全匹配你的需求:
dbconn -tabs testdb dev "INSERT INTO dataset('id', 'description', 'source_table', 'class_id') VALUES('1', 'data', 'testd', 'income')"
注意事项
- 不要直接使用
echo "$cmd"输出,部分系统的echo实现默认会二次处理转义字符,可能导致输出异常 - 输出变量时必须加双引号包裹
"$cmd",避免空格、特殊字符被shell分词破坏原始命令结构
内容的提问来源于stack exchange,提问作者Ram
相关产品推荐
相关产品推荐

