Итак, кто-то показал мне, как использовать условие (ы), чтобы проверить, набрал ли пользователь ввод пароля. Я хочу сделать свой пример еще одним шагом и использовать цикл (по крайней мере, то, что, как мне кажется, он вызывает).
Вот их пример:
read -s -p "Enter new password: " NEWPASS
if test "$NEWPASS" = ""; then
echo "Password CAN NOT be blank re-run sshd_config"
exit 1;
fi
Вместо выхода из script я хочу, чтобы он продолжал просить ввод до тех пор, пока он не появится.
Я хочу сделать такое выражение, но я делал это неправильно: (Теперь, используя верхний пример)
Пользователю предоставляется возможность ввести новый пароль и заполнить значение переменной.
read -s -p "Enter new password:" NEWPASS
echo ""
Следующая часть проверяет переменную, чтобы увидеть, содержит ли она значение, в то время как значение равно null, оно запрашивает у пользователя бесконечное значение. (цикл)
while [[ -z "$NEWPASS" ]]; do
echo ""
echo "Password CAN NOT be blank"
echo ""
read -s -p "Enter new password:" NEWPASS;
echo ""
done
Эта строка ищет файл, содержащий набор переменных, используемых другим файлом. Затем он ищет файл для строки, содержащей PASS =. * (. * Означает что угодно), а затем пишет PASS = $NEWPASS (переменная $NEWPASS)
sed -i -e"s/^PASS=.*/PASS=$NEWPASS/" /etc/sshd.conf
Спасибо за помощь, я собираюсь использовать это и учиться на нем.