Я размещаю приложение Laravel на Elastic Beanstalk.У меня есть команда ремесленника, которая запускает mysqldump
:
$command = 'mysqldump -h%s -u%s -p%s %s > ' . storage_path($filename);
$c = sprintf(
$command,
config('database.connections.host'),
config('database.connections.username'),
config('database.connections.password'),
$destinationDatabase
);
$this->process = new Process($c);
. Это работает, когда пароль (который я храню в переменной среды) не имеет знака доллара.Но когда в пароле есть знак доллара, он обрезается и команда не выполняется.Например, если пароль «test $ me», я получаю эту ошибку:
Команда «mysqldump -hhostname.eu-central-1.rds.amazonaws.com -urandomname -ptest db_name> db.sql "fail
Т.е. вместо ввода" test $ me "для пароля, он вставляет" test ".
Я попытался добавить одинарные кавычки вокруг пароля в средепеременная, происходит то же самое:
Команда "mysqldump -hhostname.eu-central-1.rds.amazonaws.com -urandomname -p'test" db_name> db.sql "завершилась неудачно