我需要直接从脚本中删除一个mysql数据库。
我创建文件〜/ .my.cnf和chmod 600。
[client]
user = "**************"
password = "*********"
safe-updates
我的脚本包括:
CMD4="echo 'DROP DATABASE db_test;' | mysql"
curl -fs -- "$URL" | grep -q -- "$WORD1" && $CMD4
我无法执行命令我只是得到这个输出: 'DROP DATABASE db_test;' | MySQL的
不会删除数据库。 怎么了?
由于
答案 0 :(得分:0)
我认为你应该用Grave accent(``)而不是双引号("")附上下面的语句,你要在这两个语句中初始化CMD4
的值
echo 'DROP DATABASE db_test;' | mysql
答案 1 :(得分:0)
请不要使用变量来存储代码。改为使用功能:
function dropdb {
echo 'DROP DATABASE db_test;' | mysql # aren't you missing some arguments here?
# like `-u username -p db`
}
curl -fs -- "$URL" | grep -q -- "$WORD1" && dropdb
答案 2 :(得分:0)
您可以使用mysql -Bse 'expression'
删除管道。因此,在您的情况下,使用正确的〜/ .my.cnf设置,您只需执行以下操作:
mysql -Bse "drop database db_test"
您还拥有全系列的mysql选项。即mysql -h somehost -u someuser -p pass -Bse "expression"