shell指令碼批量建表 1、我經常用shell指令碼批量去建一些表 ,count ....while do [sql stat] done 等等 ,在create table select * from xxxx where 1=2的時候 ,你是否被id沒有自動去建立primary key auto_increment 的主鍵索引給槍斃呢,反正我被坑了。2、你是否寫過函數function(){...} 在函數中接收過參數吧 ,你是不是這麼寫過 $data="xxx xxx xxx" ,而結果 ,你想你的函數接收一個參數 ,而你卻這麼傳了參數 fun $data ^_^ ,哈哈,實際上效果是這樣的,fun xxx xxx xxx ,呵呵,中招了吧 ,所以,你應該這麼寫 fun "$data" 3、for file in `ls |grep ^this` ,一定用過吧 ,你是否在這個命令之前 cd到一個目錄中去 ,那麼,你echo $file 的時候 ,它會將目錄的資訊帶上去麼 ,你敢確定你的說法嗎?反正我被坑了,這是My Code。[plain] function load_game_data2_dbs(){ file=$1 echo_log "$file 正在匯入資料庫中" <span style="font-family: Arial, Helvetica, sans-serif;">。。。。。</span> <span style="font-family: Arial, Helvetica, sans-serif;">}</span> [plain] for file in `ls |grep ^attemp` do echo_log "已經進入了 最後的迴圈,準備去導包" #將這個檔案分發到4個DB上的未經處理資料上去,代auto那個表 load_game_data2_dbs "$Directory/$file" echo_log "已經將資料 $Directory/$file 匯入到4台DB ,準備設定檔案完成初始狀態\n" #將4台DB上的包導完標誌位置位為初始狀態 <span style="font-family: Arial, Helvetica, sans-serif;">。。。。。。</span> <span style="font-family: Arial, Helvetica, sans-serif;">done</span> 在[plain] load_game_data2_dbs 中,我列印了 <span style="font-family: Arial, Helvetica, sans-serif;">$Directory/$file 。接著 echo_log也列印了 </span> <span style="font-family: Arial, Helvetica, sans-serif;">$Directory/$file 猜猜 ,兩個輸出的是什嗎?反正我被坑了,後來知道怎麼被坑了,原來在load_game_data2_dbs函數中,你需要對file變數加loacl 關鍵字 ,這個完全和你學的其他語言不一樣。</span>