ฉันมีฟังก์ชั่นดังต่อไปนี้
function executeMySql() {
while IFS= read -p "$prompt" -r -s -n 1 char
do
if [[ $char == $'\0' ]]; then
break
fi
if [[ $char == $'\177' ]]; then
prompt=$'\b \b'
password="${password%?}"
else
prompt='*'
password+="$char"
fi
done
mysql -u root -p$password -e "$1"
ret=$?
if [ $ret = "0" ]; then
# Show success message
printf "\e[32m\nSUCCESS: $2\n\n"
tput sgr0
else
echo "Wrong password"
fi
}
และฉันใช้มันแบบนี้
echo -e "Enter your mysql \$root password to create the db"
executeMySql "CREATE DATABASE IF NOT EXISTS Test" "Test db ready"
{
touch /var/moo.txt
} || {
# ...
}
แต่ถ้าผู้ใช้ป้อนรหัสผ่าน mysql ไม่ถูกต้องเขาจะได้รับWrong password
ข้อความและสคริปต์ดำเนินการต่อ แต่สิ่งที่ฉันต้องการคือการวนซ้ำรหัสผ่านของผู้ใช้จนกว่าจะประสบความสำเร็จแล้วจึงดำเนินการสคริปต์ต่อไป
ความคิดใดที่จะบรรลุผลนั้น