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

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

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

背景

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

本文將介紹一個遍歷文件夾下文件的 Shell 應用。

腳本編寫

批量導入目標文件夾下的 SQL 文件,核心是,得到目錄下所有 SQL 文件的名稱,循環執行導入語句。

所以,一個 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 的輸出值拆分成數組;
  3. ${數組名[@]} 將數組擴展成列表,用 for in 遍歷。

命令分解輸出示例:

Shell應用:批量導入SQL文件,你還在復制粘貼文件名?

 

啟示錄

值得注意的是,SQL 語句如果是插入操作,必須使用 use database; 指定目標數據庫。

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

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

分享到:
標簽:Shell
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

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

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定