gpt4 book ai didi

bash - 在 shell 变量中转义单引号

转载 作者:行者123 更新时间:2023-11-29 09:38:30 30 4
gpt4 key购买 nike

我写了一个 bash 脚本来将值插入 sqlite 数据库。命令如下

sqlite3 ${db_name} "insert into ${table_name} (${column1},${column2}) values ('$f1','$f2');"

此命令在 f1 变量包含单引号之前工作正常

# e.g f1="I'm just kidding"
# the command reported error
Error: near "m": syntax error

有人可以告诉我如何转义变量中的单引号吗?任何建议表示赞赏。谢谢!

最佳答案

要转义 SQL 的单引号,将其加倍 ( https://www.sqlite.org/faq.html#q14 ):

$ f1="I'm just kidding"
$ echo "${f1//\'/''}"
I''m just kidding
$ f2="no single quotes"
$ echo "${f2//\'/''}"
no single quotes

所以

sqlite3 ${db_name} "insert into ${table_name} (${column1},${column2}) values ('${f1//\'/''}','${f2//\'/''}');"

关于bash - 在 shell 变量中转义单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14339460/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com