2

$title が引用符付きで返されることがあります。適切な方法はありますか

  1. 挿入中はそのままにしておくか、
  2. エラーが発生しないように削除するだけですか?

    echo "INSERT INTO $SQL_DATABASE.$SQL_TABLE SET $SQL_FILENAME_FIELD='$OUTPUTFILENAME', title='$title', url='$OUTPUTFILENAME', cover='$OUTPUTFILENAME.jpg', server='s2', dateadd=now (), lastplayed=now()-間隔 2 日, レコード='1000', チャンネル='2', ダウンロード='1';" \ | mysql -h$SQL_HOST -u$SQL_USERNAME -p$SQL_PASSWORD $SQL_DATABASE

4

2 に答える 2

2

引用符を保持するには、$ titleを使用する代わりに、引用符をエスケープする必要があります。

${title//\'/\'\'}

これはに変換 It's a beautiful dayされIt''s a beautiful dayます。

完全なコマンドラインは次のとおりです。

echo "INSERT INTO $SQL_DATABASE.$SQL_TABLE SET $SQL_FILENAME_FIELD='$OUTPUTFILENAME', title='"${title//\'/\'\'}"', url='$OUTPUTFILENAME', cover='$OUTPUTFILENAME.jpg', server='s2', dateadd=now(), lastplayed=now()-interval 2 day, record='1000', channel='2', downloaded='1';"
于 2013-03-22T09:33:51.950 に答える
1

ここで tr コマンドを使用して、タイトルから ' 文字を削除します。

 title=$(echo $title | tr -d "'")

英数字のみを出力するには、-cd オプションを使用すると、英数字以外のすべての文字が削除されます。

 title=$(echo $title | tr -cd "[:alnum:]")
于 2013-03-22T09:25:04.900 に答える