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

时间:2012-05-11 16:40:14

标签: 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脚本将具有所有特殊字符,所以这不起作用。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

您需要在Insert语句中引用该值,并且您需要保护值本身中的引号:untested:

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