잘못된 비밀번호 캡처

잘못된 비밀번호 캡처

나는 우리 서버에서 웹사이트를 설정하는 모든 단계를 처리하는 스크립트를 작성했습니다. 내가 겪고 있는 문제는 누군가가 잘못된 MySQL 비밀번호를 입력하면 스크립트가 계속 실행되고 데이터베이스 생성을 건너뛰는 것입니다. 비밀번호가 올바르지 않으면 중지하고 다시 요청하고 싶습니다.

이 문제를 어떻게 처리해야 합니까?

이것은 내 코드입니다 -

read -s -p "Enter the MySQL password: " BASEPASS
mysql -u ${BASEUSER} -p${BASEPASS} <<CREATE_DB_QUERY
CREATE DATABASE IF NOT EXISTS ${NEWDB};
CREATE USER ${NEWUSER} IDENTIFIED BY '${NEWPASS}';
GRANT ALL ON ${NEWDB}.* TO ${NEWUSER};
CREATE_DB_QUERY

mysqldump --opt --user=${BASEUSER} --password=${BASEPASS} ${BASEDB} > ${SQLFILE}
mysql --user=${BASEUSER} --password=${BASEPASS} ${NEWDB} < ${SQLFILE}
rm ${SQLFILE}

답변1

set -o errexit -o nounset먼저, 스크립트의 맨 위에 있는지 확인하세요 . 그런 다음 하나 이상의 유효한 비밀번호를 얻을 때까지 간단한 검사를 반복하십시오.

while true
do
    read -s -p "Enter the MySQL password: " BASEPASS
    mysql -u "$BASEUSER" "-p${BASEPASS}" 'SELECT 1' && break
done

반품,더 많은 인용문 사용™!

관련 정보