Это часть сценария Bash, и внутренняя структура выглядит так:
createdbcmd="docker exec $1 mysql -v -uroot -e \"GRANT ALL PRIVILEGES ON $dbname.* TO $2@$4 IDENTIFIED BY '$3'\""
echo $createdbcmd
$createdbcmd
эхо выглядит следующим образом:
docker exec mysql_test_no mysql -v -uroot -e "GRANT ALL PRIVILEGES ON wordpress.* TO [email protected] IDENTIFIED BY 'changeme'"
Выполнение этой точной команды работает нормально. через bash-script он действует так, как будто я просто запускаю "mysql", и я получаю справочную информацию по умолчанию без ошибок.
Попробуйте так:
createdbcmd="docker exec $1 mysql -v -uroot -e \"GRANT ALL PRIVILEGES ON $dbname.* TO $2@$4 IDENTIFIED BY '$3'\""
echo $createdbcmd
eval $createdbcmd
Без eval
цитируемое выражение не интерпретируется правильно.