無効なパスワードのキャプチャ

無効なパスワードのキャプチャ

私は私たちのサーバーでウェブサイトを設定するすべてのステップを処理するスクリプトを書いています。私が経験している問題は、誰かが間違った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まず、スクリプトの一番上にあることを確認してください。次に、1つ以上の有効なパスワードが得られるまで、簡単なチェックを繰り返します。

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

返品、より多くの引用を使用™

関連情報