Sehll script是利用shell的功能所寫的一個程序,這個程序使用純文本文件,將一些shell的語法與命令寫在裏面,搭配正則表達式、管道命令與數據流重定向等功能,已達到咱們因此想要的處理目的。正則表達式
1、script的編寫與執行shell
執行sh文件的方法:bash
使用絕對路徑來執行函數
使用相對路徑來執行調試
將sh文件放在PATH變量指定的目錄下,例如:~/bin/進程
2、script的執行方式區別ip
利用直接執行的方式來執行script:在子進程中執行(直接命令執行、bash進程執行都屬於這種)字符串
利用source來執行腳本:在父進程中執行(命令格式:source 文件名)it
3、善用判斷式(test或者中括號)io
一、test命令
檢測系統上面某些文件或者是相關的屬性、字符串、多重條件判斷
舉例:
二、【】判斷符號
在方括號中的每一個組件都須要用空格隔開,變量用雙引號括起來,常量用單或者雙引號括起來
例如:
箭頭所對應的都是空格。
三、shell script默認變量$0,$1,。。。
執行腳本的後面能夠帶參數。
$0默認爲文件名,其後的是參數。$#表明參數個數,$@表明"$1"," $2","$3"等$*表明「$1c$2c$3」,其中c是分隔符,默認是空格鍵
舉例:
執行一個帶參數的script,要求屏幕顯示:
4、條件判斷式
一、If...then
if [ 條件判斷式一 ]; then
程序段
elif [ 條件判斷式二 ]; then
程序段
else
程序段
fi
(注意事項:if 和 [ 之間須要有空格,; 和 then之間也須要空格)
舉例:
二、case...esac
case $變量名稱 in
"第一個變量內容")
程序段
;;
"第二個變量內容")
程序段
;;
*)
程序段
exit 1
;;
Esac
舉例:
5、函數
function fname(){
程序段
}
其中function也是擁有內置變量的,它與shell script很相似,函數名稱表示$0,後續變量是以$1,$2...替代的
6、循環
一、 while [ condition ]
do
程序段
done
二、 until [ condition ]
do
程序段
done
三、 for var in conl con2 con3
do
程序段
done
四、 for ( ( 初始值; 限制值; 執行步長 ) )
do
程序段
done
7、追蹤與調試
sh [-nvx] 文件名
-n:不要執行腳本,僅查詢語法的問題
-v:在執行腳本前,先將腳本的內容輸出到屏幕上
-x:將使用到的腳本內容顯示到屏幕上