Я пытаюсь создать сценарий оболочки для автоматического резервного копирования всей моей базы данных. Мой скрипт ожидает пароль в новой строке, потому что я не хочу его нигде хранить. Вот мой код:
#!/bin/bash
echo -n Password:
read -s PASS
echo
docker exec db /usr/bin/mysqldump --all-databases -u admin --password='\''$PASS\'' > backup-$(date "+%Y-%m-%d").sql
Проблема в том, что мне нужно поместить переменную в одинарные кавычки из-за знаков $ в пароле, но я не могу читать переменные в одинарных кавычках. Я знаю, что есть несколько подобных вопросов, но я не могу их решить.
Таким образом, если пароль «$ ecretPa $$ word», то фактически выполняемая программа должна выглядеть примерно так:
docker exec db /usr/bin/mysqldump --all-databases -u admin --password='$ecretPa$$word' > backup-2020-03-03.sql