私はbashスクリプトからMySQLのコマンドラインツールを使用しようとしている。HOWTOは予防すること」と「シナリオをめちゃくちゃ、bashで正しい方法をmysqlコマンド文字列を構築する?
を私が干渉する2例を持っています変数が含まれてい文字意志論理「
rcolumn="Teststring cont'aining a character"
COMMAND="UPDATE "$IMPORT_TABLE" SET colunm='"$rcolumn"' WHERE stepno="$rstepno" ;"
mysql -u "$USER" --password="$PASS" -D "$DATABASE" -e "$COMMAND"
が今明らかにこの意志はめちゃくちゃにmysqlコマンドを追加。」:お互い
ケース1と同盟者を破る。
UPDATE table SET colunm='Teststring cont'aining a character' WHERE stepno=1 ;"
ケース1 - 固定は:問題の上解決するために、私は少し
rcolumn="Teststring cont'aining a character"
COMMAND="UPDATE "$IMPORT_TABLE" SET colunm=\""$rcolumn"\" WHERE stepno="$rstepno" ;"
mysql -u "$USER" --password="$PASS" -D "$DATABASE" -e "$COMMAND"
今固定コマンドは以下のようになります。コードを変更する - それが、この場合
UPDATE table SET colunm="Teststring cont'aining a character" WHERE stepno=1 ;"
のために動作しますしかし、これはケース2を導入します。変数に"文字
rcolumn="Teststring cont"aining a character"
COMMAND="UPDATE "$IMPORT_TABLE" SET colunm=\""$rcolumn"\" WHERE stepno="$rstepno" ;"
mysql -u "$USER" --password="$PASS" -D "$DATABASE" -e "$COMMAND"
この場合、上記の修正は論理的には機能しません。
UPDATE table SET colunm="Teststring cont"aining a character" WHERE stepno=1 ;"
どうすればこの問題を最も効果的に解決できますか?
、いくつかのコマンドは両方を含んでいてもよいよう** "**と** '**今私のために同じ時間 –
の文字** ' **とこの問題を克服するために**実際の解決策ではありません;-) –
おそらくタイプミス、あなたは 'column'の代わりに' colunm'を言っています。 – fedorqui