現在我想提一下,我不會過於流利地使用RegEx或BASH,所以我將非常感謝這樣的解釋。謝謝。BASH在if語句中匹配正則表達式
我大大拖延了這個文件,但基本上我想要做的是採取一個數組$sqldatabases
並檢查哪些變量包含@符號,然後更新該特定變量不包含@符號,最後爲該數據庫運行mysqldump
。基本上我所看到的代碼目前缺少if
語句過濾論壇@。
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 2013-03-21 12:58:49