mysql命令的bash字符串延续

jhiyze9q  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(360)

在bash脚本中运行某些测试时,我正在尝试清理数据库,但以下行继续尝试不起作用:

mysql -e "DELETE FROM test.users WHERE username ="\
            "'<a href=https://localhost>XSS Hack!</a>';"

我得到了错误

ERROR 1044 (42000): Access denied for user 'web'@'localhost' to database ''<a href=https://localhost>XSS Hack!</a>';'

如果我在一行上运行这个命令,它就可以正常工作。

ulydmbyx

ulydmbyx1#

反斜杠转义换行符,但下一行开头的空格仍充当单词分隔符。因此该命令等效于:

mysql -e "DELETE FROM test.users WHERE username =" "'<a href=https://localhost>XSS Hack!</a>';"

如果在字符串中间结束一行,则不需要转义换行符。mysql也不介意查询中的换行。所以你可以写:

mysql -e "DELETE FROM test.users WHERE username =
          '<a href=https://localhost>XSS Hack!</a>';"

相关问题