Sto costruendo uno script che eseguirà il backup di un database di WordPress. Ho creato la funzione di necessità per la discarica di MySQL:Bash: impossibile entrare se anche la condizione è vera
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
}
Quando Y o Yes/Si/Si/Si/Si è battitore - non entra in se è vero blocco, e non viene creato alcun discarica: (I dettagli del database sono corretti e la discarica va a portata di mano, ma non sono in grado di entrare nella condizione IF
Utilizzare le virgolette intorno alla regexp, ad esempio: '[[$ response = ~ "^ ([aa] [eE] [SS] || [aa ]) $ "]]' – edi9999
La tua espressione regolare corrisponderà (maiuscole/minuscole-virgolette aggiunte per la formattazione) '" si "' (con uno spazio finale) o '" y "' (con uno spazio iniziale) o la stringa vuota "" "... è quello che vuoi? –