1

Я пытаюсь написать bash-скрипт, который установит mysql-server-5.6. Я хочу попросить пользователя ввести пароль, а затем я буду использовать его во время установки mysql-server и некоторых других настроек.

Но мой скрипт не работает

#!/bin/bash
mysql_pass="pass"
mysql_pass_again="wrong pass"
while [ "$mysql_pass" != "$mysql_pass_again" ]
do
    read -s -p "Choose mysql root password: " mysql_pass
    echo -e "\n"
    read -s -p "Repeat mysql root password: " mysql_pass_again

    if [ "$mysql_pass" != "$mysql_pass_again" ]; then
        echo -e "\nPasswords do not match!"
    fi
done

echo -e "\nConfiguring mysql."

sudo debconf-set-selections <<< 'mysql-server-5.6 mysql-server/root_password password $mysql_pass'
sudo debconf-set-selections <<< 'mysql-server-5.6 mysql-server/root_password_again password $mysql_pass_again'
sudo apt-get -y --force-yes install mysql-server-5.6 >/dev/null

После ввода пароля ничего не происходит. Когда я удаляю>/dev/null, я вижу, что установщик mysql сообщает мне, что пароли неверны, и мне нужно нажать OK

Однако пароли остаются теми же, если я повторяю их, а также, когда установка завершена, я могу подключиться к mysql-серверу с паролем, который я ввел во время установки.

Как я могу сказать apt-get нажать OK для меня? Спасибо

1 ответ1

0

проблема с переменной внутри одинарной кавычки:

sudo debconf-set-selections <<< 'mysql-server-5.6 mysql-server/root_password password $mysql_pass'
sudo debconf-set-selections <<< 'mysql-server-5.6 mysql-server/root_password_again password $mysql_pass_again'

Когда я изменяю его на двойной qoutes "" это работает ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .