Ich baue ein Skript, das eine WordPress-Datenbank sichern wird. Ich habe die Funktion Notwendigkeit für das MySQL-Dump erstellt:Bash: Kann nicht eingehen, wenn auch die Bedingung wahr ist
function db_backup {
read -r -p "Dump the database? [Y/n]: " response
if [[ $response =~ ^([yY][eE][sS] || [yY])$ ]]
then
mysqldump -h $1 -u $2 -p$3 $4 > $4.sql
if [[ $? == 0 ]]
then
printf "Database %s dumped successfuly in %s.sql\n" ${db_name} ${db_name}
return 0
else
printf "Database backup %bfailed%b\n" ${red} ${reset}
return 1
fi
else
return 1
fi
}
Wenn Y oder Ja/Ja/Ja/Ja/Ja ist Hitter - es tritt nicht in dem, wenn wahr Block und kein Dump erstellt: (die Datenbank Daten korrekt sind und die Dump geht auf der Hand, aber ich bin nicht in der Lage in der IF-Bedingung eingeben
Verwenden Anführungszeichen um den regulären Ausdruck, zum Beispiel: '[[$ response = ~„^ ([yy] [eE] [sS] || [jj ]) $ "]]' – edi9999
Sie Regex wird (case-insensitive-Anführungszeichen für Formatierungszwecke hinzugefügt) '" yes "' (mit einem Leerzeichen) oder "" (mit einem führenden Leerzeichen) oder die leere Zeichenfolge übereinstimmen '' '' ... ist das was du willst? –