爲了充分利用晚上的時間進行編譯,用shell寫了一個自動編譯代碼的腳本,這樣保證第二天的調試工作不會受大版本編譯的影響,同時也能監測服務器端的代碼是否出錯。我習慣是在每天下班離開之前運行此腳本。
1、運行命令:打開ubuntu終端
$sleep 3600;./build_local.sh 2 3
上面這條命令的含義是:睡眠3600秒之後,調用build_local.sh腳本,腳本的參數爲2 和 3
2、腳本內容爲,因爲內容很簡單,所以不做解釋:
#!/bin/bash
if [ "$1a" != "a" ]; then
cd /media/code/92_n_$1/android-m92/;
pwd
source build/envsetup.sh;
lunch 23;
git pull;
make clean;
make -j4
else
echo "paramters wrong!!!"
fi
#
if [ "$2a" != "a" ];then
cd /media/code/92_n_2/android-m92/;
source build/envsetup.sh;
lunch 23;
git pull;
make clean;
make -j4
fi
===============================================分割線======================================================
另:在此記錄下一零散的shell編寫語法:
注意:這裏的空格很重要。要確保方括號的空格。筆者就曾因爲空格缺少或位置不對,而浪費好多寶貴的時間。if ....; then
....
elif ....; then
....
else
....
fi
[ -f "somefile" ] :判斷是否是一個文件
[ -x "/bin/ls" ] :判斷/bin/ls是否存在並有可執行權限
[ -n "$var" ] :判斷$var變量是否有值
[ "$a" = "$b" ] :判斷$a和$b是否相等
-r file 用戶可讀爲真
-w file 用戶可寫爲真
-x file 用戶可執行爲真
-f file 文件爲正規文件爲真
-d file 文件爲目錄爲真
-c file 文件爲字符特殊文件爲真
-b file 文件爲塊特殊文件爲真
-s file 文件大小非0時爲真
-t file 當文件描述符(默認爲1)指定的設備爲終端時爲真
含條件選擇的shell腳本 對於不含變量的任務簡單shell腳本一般能勝任。但在執行一些決策任務時,就需要包含if/then的條件判斷了。shell腳本編程支持此類運算,包括比較運算、判斷文件是否存在等。
基本的if條件命令選項有: - eq —比較兩個參數是否相等(例如,if [ 2 –eq 5 ])
-ne —比較兩個參數是否不相等
-lt —參數1是否小於參數2
-le —參數1是否小於等於參數2
-gt —參數1是否大於參數2
-ge —參數1是否大於等於參數2
-f — 檢查某文件是否存在(例如,if [ -f "filename" ])
-d — 檢查目錄是否存在
幾乎所有的判斷都可以用這些比較運算符實現。腳本中常用-f命令選項在執行某一文件之前檢查它是否存在。