bash - Bash:如何在sqlite3中插入具有特殊字符的文本?

标签 bash sqlite

假设我想使用sqlite3将各种bash脚本的文本保存到数据库中。

如果我的脚本这样做

VARIABLE=$(cat "bashScript.sh")
sqlite3 mydb.db "CREATE TABLE data (myBash BLOB)" 
sqlite3 mydb.db "INSERT INTO data VALUES (${VARIABLE})"


因为bash脚本将具有所有特殊字符,所以它将不起作用。我怎样才能做到这一点?

最佳答案

您需要在Insert语句中用引号引起来,并且要保护值本身中的引号:未经测试:

sql_value=$(sed 's/'\''/&&/g' <<< "$VARIABLE")
sqlite3 mydb.db "insert into data values ('$sql_value')"

关于bash - Bash:如何在sqlite3中插入具有特殊字符的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10555370/

相关文章:

linux - 编写一个接受持续时间作为参数的 bash 脚本?

delphi - 链接 sqlite3.object 发出不满意的前向声明错误

django - 如何访问 pythonanywhere.com 上的 sqlite3?

linux - 初始化脚本 '/dev/tty: No such device or address' 重定向错误

bash - 如何在不注销/登录的情况下将用户添加到组 - Bash 脚本

android - 数据库更新时应用崩溃

c# - 将EF Core与ASP.NET Core MVC和Sqlite结合使用-正确的类结构

java - 奇怪的 SQLite 行为 - 非功能性 UPDATE SQLite 方法

regex - 在 linux 和 AIX 中使用正则表达式替换 bash 脚本中的字符串

bash - 输出特定行的大文本文件