假设我想用sqlite3在我的数据库中保存各种 bash脚本的文本。
如果我的脚本执行此操作
VARIABLE=$(cat "bashScript.sh")
sqlite3 mydb.db "CREATE TABLE data (myBash BLOB)"
sqlite3 mydb.db "INSERT INTO data VALUES (${VARIABLE})"
因为bash脚本将具有所有特殊字符,所以这不起作用。我怎样才能做到这一点?
答案 0 :(得分:2)
您需要在Insert语句中引用该值,并且您需要保护值本身中的引号:untested:
sql_value=$(sed 's/'\''/&&/g' <<< "$VARIABLE")
sqlite3 mydb.db "insert into data values ('$sql_value')"