2012-05-11 10 views
1

bashスクリプトのテキストをsqlite3で私のデータベースに保存したいとしましょう。 bashスクリプトは、すべての特殊文字を持っていますので、私のスクリプトは、このBash:sqlite3に特殊文字を挿入するには?

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

を行う場合

、これは動作しません。これどうやってするの?未テスト:あなたがINSERT文で値を引用する必要がある、とあなたが値自体に引用符を保護したいと思う

答えて

1

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

良いアイデアを、使用 '「」'内部 '「」'したがって、 '$ sql_value'は動作します。私が心配しなければならないユニークなキャラクターは '' 'ですか?あなたは ''を '&& 'で置き換えるのですか? '<<<'は本当に何をしていますか?私は検索して平均を見つけられません3 '<' – Rodrigo

+0

sedの 's ///'コマンドの右側に '&'は "左側に一致したものを使用する"という意味です - 私は一重引用符を二重引用符で置き換えています。 '<<<'は[bash here-string](http://www.gnu.org/software/bash/manual/bashref.html#Redirections)です。 –

関連する問題