你需要確保$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