1. 程式人生 > >shell指令碼執行已有的其他指令碼檔案

shell指令碼執行已有的其他指令碼檔案

工作中常遇到一些資料問題,需要各種指令碼去處理,各種先後順序,還要處理多個庫,還會遇到某個指令碼處理某個庫時報錯需要重新處理的問題,因此用一個shell把它們串起來就比較方便了

1.多個庫執行同一個指令碼

#/bin/bash
city_array=('bj' 'sh' 'tj' )
type="test"
for city in ${city_array[@]};
do
    echo $city
    sh sync_test.sh $city ${type}"_"${city} 
done

2.多個庫執行同一個指令碼(test_run.py),將多個城市庫名稱寫入另一個檔案(nxm_newsell_0816.txt),執行當前shell時,從nxm_newsell_0816.txt中讀取城市庫名稱,讀取完即刪除,以備當test_run.py執行時某個城市失敗,將異常城市追加到新生成的nxm_newsell_0816.txt,下次執行當前shell時,只執行上次失敗的城市
注:
nxm_newsell_0816.txt 中的內容格式: bj,sh,tj
test_run.py 失敗記錄方式
在這裡插入圖片描述

    #/bin/bash
    str=$(cat nxm_newsell_0816.txt)
    #以逗號分割字串為陣列
    str=${str//,/ }  
    city_array=($str)
    rm -rf 'nxm_newsell_0816.txt'
    for city in ${city_array[@]};
    do
        echo $city
        python test_run.py $city
    done