我有时会在其中带有$ title返回报价。
是否有适当的方法?只是简单地删除它就不会反击错误了吗?
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
答案 0 :(得分:2)
要保留你需要转义它们的引号,而不是使用$ title,而不是使用它:
${title//\'/\'\'}
这会改变
It's a beautiful day
It''s a beautiful day
。{/ p>
这是完整的命令行:
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';"
答案 1 :(得分:1)
此处使用tr命令从标题中删除'字符。
title=$(echo $title | tr -d "'")
要仅输出字母数字字符,-cd选项将删除所有不是字母数字的字符。
title=$(echo $title | tr -cd "[:alnum:]")