你需要确保$user
和$password
用双引号("
)或没有和,as @jkerian mentioned包围,即$2
由单引号('
)或包围,如果是双引号,前面有一个反斜杠使\$2
。
试试这个(这是在我看来,吸尘器一个):
time mysqlshow -u$user -p$password |
egrep -v 'information_schema|performance_schema' |
awk '{print "mysql -u'"$user"' -p'"$password"' -Bse \"drop database", $2, "\""}'
或者这样:
time mysqlshow -u$user -p$password |
egrep -v 'information_schema|performance_schema' |
awk '{print "mysql -u'$user' -p'$password' -Bse \"drop database", $2, "\""}'
或者这样:
time mysqlshow -u$user -p$password |
egrep -v 'information_schema|performance_schema' |
awk "{print \"mysql -u$user -p$password -Bse \\\"drop database\", \$2, \"\\\"\"}"
这是一个烂摊子,我知道。但它应该工作。
您也可以在awk脚本中使用egrep部件。 '时间mysqlshow -u $用户-p $密码| awk“!/ information_schema | performance_schema/{print \”mysql -u $ user -p $ password -Bse \\\“drop database \”,\ $ 2,\“\\\”\“}”' – tripleee