linux筆記九 shell 指令碼

2021-06-09 04:51:21 字數 1993 閱讀 9622

shell script 是利用 shell 的功能所寫的乙個『程式 (program)』,這個程式是使用純文本文

件,將一些 shell 的語法與指令(含外部指令)寫在裡面, 搭配正規表示法、管線命令與資料流重

導向等功能,以達到我們所想要的處理目的。

利用test指令的測試功能

使用判斷符號 [ ] 

(中括號的使用方法與 test 幾乎一模一樣)但要注意:

在中括號 內的每個元件都需要有空格鍵來分隔; 

在中括號內的變數,最好都以雙引號括號起來; 

在中括號內的常數,最好都以單或雙引號括號起來。

shell script 的預設變數($0, $1...) 

shift:造成引數變數號碼偏移

條件判斷式

利用 if .... then

單層、簡單條件判斷式

多重、複雜條件判斷式

如果考慮更複雜的情況,則可以使用這個語法:

netstat的指令,這個指令可以查詢到目前主機有開啟的網路服務埠 (service ports),

可以利用『 netstat -tuln 』來取得目前主機有啟動的服務。

利用 case ..... esac 判斷

利用 function 功能

function fname()  

另外, function 也是擁有內建變數的~他的內建變數與 shell script 很類似, 函式名稱代表示 $0 ,

而後續接的髮量也是以 $1, $2... 來取代的。

迴圈while do done, until do done (不定迴圈)

for...do...done (固定迴圈) 

for var in con1 con2 con3 ... 

do 程式段 

done 

for...do...done 的數值處理

for (( 開始值; 限制值; 執行步階 )) 

do 程式段 

done  

shell script 的追蹤與debug 

[root@www ~]# sh [-nvx] scripts.sh 

選項與引數: 

-n  :不要執行 script,僅查詢語法的問題; 

-v  :再執行 sccript 前,先將 scripts 的內容輸出到螢幕上; 

-x  :將使用到的 script 內容顯示到螢幕上,這是很有用的引數!

shell script 的執行,至少需要有r的許可權,若需要直接指令下達,則需要擁有r與x的許可權;

Shell 指令碼學習筆記九 Shell函式

函式的定義格式 function funname 1 可以帶function fun 定義,也可以直接fun 定義,不帶任何引數 2 引數返回,可以顯示加 return 返回,如果不加,將以最後一條命令執行結果,作為返回值。return後跟數值n 1 沒有 return 語句的函式 demofun ...

linux學習(九) shell指令碼(6)

建立函式 1.基本指令碼函式 1.1建立函式 方式一 使用關鍵字 function,後跟 塊的函式名。function name name名稱需要唯一在乙個指令碼中,方式二 name 函式引用,直接呼叫函式名即可。函式定義不一定位於shell指令碼的起始部分,但應該注意,如果在函式定義之前使用函式,...

Shell指令碼(九) 函式

1 basename基本語法 basename string pathname suffix 功能描述 basename命令會刪掉所有的字首包括最後乙個 字元,然後將字串顯示出來。選項 suffix為字尾,如果suffix被指定了,basename會將pathname或string中的suffix去...