Я хотел бы упомянуть сейчас, что я не слишком свободно владею либо RegEx, либо BASH, поэтому объяснение in-deph было бы очень оценено, так что я могу научиться. Благодарю.BASH regex matching in if statement
Я очень сильно притупил этот файл, но в основном то, что я хочу сделать, это взять массив $sqldatabases
и проверить, какие переменные содержат символ @, а затем обновить эту конкретную переменную, чтобы не включать символ @, и, наконец, запустите для этой базы данных mysqldump
. В основном то, что я вижу в настоящее время с кодом в настоящее время, является отсутствие заявление фильтрации форум @.
source config.sh
sqldatabases=(bans [email protected] users donators)
for ((sqlcount = 0; sqlcount < ${#sqldatabases[@]}; sqlcount++))
do
if [[ "$sqldatabases[sqlcount]" =~ *[@]* ]] ; then
sqldatabases[sqlcount]=${sqldatabases[sqlcount]//[@]/}
echo "$sqldatabases[sqlcount]"
mysqldump -u"$sqluser" -p"$sqlpass" -h"$sqlhost" ${sqldatabases[sqlcount]} > .backups/$timedate/MySQL/${sqldatabases[sqlcount]}.sql;
fi
done
Еще раз спасибо за помощь, и попытайтесь объяснить каждую модификацию в глубину.
'* [@] *' является образцом, а не регулярное выражение. – chepner