2019-05-28 14:52:33 4110瀏覽
對Linux開發(fā)技術感興趣的小伙伴應該對shell也是有所了解的吧,本篇文章扣丁學堂Linux培訓小編給讀者們分享一下shell在指定目錄下批量執(zhí)行sql腳本的實例,感興趣的小伙伴就隨小編來了解一下吧。
如下所示:
#!/bin/bash
#execute all script in specified directory
MYDATE=`date +%F'-'%T'-'%w`
MYSQL_PATH=/tmp/scripts #指定的目錄
LOG_FILE=/tmp/scripts/exec_${MYDATE}.log
confirm=
db_name=
db_pass=
for file in ${MYSQL_PATH}/*
do
if [ -f "$file" ] ; then
postfix=`echo $file | awk -F'.' '{print "."$NF}'`
if [ $postfix = ".sql" ] ; then
if [ ! $db_name ] ; then #如果沒有指定數(shù)據庫
read -p "請輸入數(shù)據庫名:" db_name
read -p "你輸入的數(shù)據名是【$db_name】,確認繼續(xù)請輸入--yes--: " confirm
fi
if [ "$confirm" = "yes" ] && [ -n $confirm ] ; then
if [ ! $db_pass ] ; then #如果沒有設置密碼
stty -echo #密碼輸入保護關閉顯示
read -p "請輸入數(shù)據庫密碼:" db_pass
echo -e "\n"
stty echo
fi
mysql -uroot -p$db_pass -P3306 --default-character-set=utf8 ${db_name} < $file >& error.log
echo $file
echo -e "\n===========$file=============\n" >>${LOG_FILE}
cat error.log >>${LOG_FILE} #輸出執(zhí)行日志
error=`grep ERROR error.log` #讀取錯誤日志信息
if [ -n "$error" ] ; then #如果有錯誤就退出程序
echo $error
exit
fi
else
echo "您已經取消操作!"
exit
fi
fi
fi
done
想要了解更多關于Linux開發(fā)方面內容的小伙伴,請關注扣丁學堂Linux培訓官網、微信等平臺,扣丁學堂IT職業(yè)在線學習教育有專業(yè)的Linux講師為您指導,此外扣丁學堂老師精心推出的Linux視頻教程定能讓你快速掌握Linux從入門到精通開發(fā)實戰(zhàn)技能??鄱W堂Linux技術交流群:422345477。
【關注微信公眾號獲取更多學習資料】 【掃碼進入Python全棧開發(fā)免費公開課】