Вы должны убедиться, что $user
и $password
заключены в двойные кавычки ("
) или ничем, и , как @jkerian упомянул , что $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, \"\\\"\"}"
Это беспорядок, я знаю. Но это должно работать.