日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

背景

從一個數(shù)據(jù)庫中導(dǎo)出了 N 個表的 SQL 語句,匯總到一個文件夾下。然后,再導(dǎo)入到目標(biāo)數(shù)據(jù)庫中。這個過程中,如果逐個敲 source 命令太繁瑣了,不如寫個腳本來搞定、順便練練手。

本文將介紹一個遍歷文件夾下文件的 Shell 應(yīng)用。

腳本編寫

批量導(dǎo)入目標(biāo)文件夾下的 SQL 文件,核心是,得到目錄下所有 SQL 文件的名稱,循環(huán)執(zhí)行導(dǎo)入語句。

所以,一個 ls 命令就搞定了。

curDir=$1
cd $curDir
echo 'Start import  .sql file in directory '$curDir
fileTmp=`ls`
fileNames=($(echo $fileTmp))
for fileName in ${fileNames[@]}
 do 
  echo 'current file '$fileName
  MySQL -h localhost -uroot -p123456 < ./$fileName
  echo ''
done
echo 'Finished import .sql file.'

腳本分析

  1. ls 命令輸入所有的文件名稱;
  2. 用 $ 命令按空格拆分,將 ls 的輸出值拆分成數(shù)組;
  3. ${數(shù)組名[@]} 將數(shù)組擴展成列表,用 for in 遍歷。

命令分解輸出示例:

Shell應(yīng)用:批量導(dǎo)入SQL文件,你還在復(fù)制粘貼文件名?

 

啟示錄

值得注意的是,SQL 語句如果是插入操作,必須使用 use database; 指定目標(biāo)數(shù)據(jù)庫。

其實也就選擇地導(dǎo)出了 8 張表的 SQL 語句,逐個敲文件名也不是個事兒,這也是最簡單的處理方法,但是這不符合好開發(fā)解決問題的風(fēng)格啊,就是一個遍歷文件名的命令,網(wǎng)上沒找到現(xiàn)成的腳本,就自己寫一個!

寫腳本也花了十分鐘,但好歹比復(fù)制粘貼文件名有技術(shù)含量得多,順便也練習(xí)了一下 Shell 數(shù)組的語法。再說了,腳本到了運維同事手里,說不定會暗自夸這腳本的作者貼心呢!

分享到:
標(biāo)簽:Shell
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定