Bash скрипт не может отправить инструкции в MySQL

1

Это часть сценария 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", и я получаю справочную информацию по умолчанию без ошибок.

Теги:
docker

1 ответ

2
Лучший ответ

Попробуйте так:

createdbcmd="docker exec $1 mysql -v -uroot -e \"GRANT ALL PRIVILEGES ON $dbname.* TO $2@$4 IDENTIFIED BY '$3'\"" 
echo $createdbcmd
eval $createdbcmd

Без eval цитируемое выражение не интерпретируется правильно.

  • 0
    Это добилось цели. Спасибо
  • 0
    @ user3009620 Тогда, пожалуйста, отметьте его как принятый! (См. Значок в виде трубы / чека под стрелками для голосования рядом с моим сообщением слева.)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню