bash - 使用 bash 脚本插入带有 $s 的 SQL 表
问题描述
我正在使用 bash 脚本来更改 SQL 数据库。我正在更新的值之一使用美元符号。当前值类似于“$$$$$”,我需要将其更改为“$$$$$$$$$$”。但是,bash 脚本中的 aa $ 用于变量。
如何允许我的 bash 脚本的这一小部分使用 $ 作为普通字符?
function prep() {
DATE_STAMP=$(date +%m%d%Y)
log "Changing mask to 10 characters"
log "$(/opt/CPU/bin/connx-query -q "update TYPE set TYPE.MASK = '$$$$$$$$$$'")"
}
就目前而言,它只是用我脚本中前面找到的一些随机数替换每个美元符号。
解决方案
Bash 提供了不同类型的引用,每种都有不同的替换规则(单引号'
、双引号"
、此处为文档/字符串<<<"string"
和 and $'
。
双引号(在 中使用log ... update
)将启用变量替换,将每一对替换$$
为当前的 shell PID(看起来像随机数)。几个选项:
考虑引用每个“$”以防止扩展
log "$(/opt/CPU/bin/connx-query -q "update TYPE set TYPE.MASK = '\$\$\$\$\$\$\$\$\$\$'")"