shell函數
為什麽要用shell函數?
簡單地說函數的作用就是把程序裏多次調用的相同的代碼 ,定義成一份,然後起個名字,所有的調用都是只用這個名字就可以了。修改代碼時,只需要改變函數體內的代碼即可。
優勢:
把相同的程序段定義成函數,可以節省程序代碼量
增加程序的可讀,易讀性
實現程序的功能模塊化
shell函數語法
簡單的語法:
函數名(){
指令...
return n
}
規範的語法:
function 函數名(){
指令...
return n
}
shell函數執行
調用函數:
1)直接執行函數名即可。註意,不要帶小括號。
函數名
註意:函數體必須再要執行的函數名的前面定義
2)帶參數的函數執行方法:
函數名 參數1 參數2
【函數帶參數的說明】
在函數體重位置參數{$1,$2,$3,$4,$5,$#,$*,$?以及$@}都是可以是函數的參數
父腳本的參數則臨時地被函數參數所掩蓋或隱藏
$0比較特殊,他仍然是父腳本的名稱
當函數完成時,原來的命令行參數會恢復
在shell函數裏面,return命令的功能與工作方式與exit相同,用於跳出函數
在shell函數體裏使用exit會終止整個shell腳本
return語句會返回一個退出值給調用的程序
shell函數範例
範例1:開發腳本建立兩個簡單函數並調用執行
#!/bin/bash xcn( ) { #定義函數 echo "i am xcn" } xcn #調用函數 執行結果: [[email protected]
#!/bin/bash xcn( ) { echo "i am xcn" } echo "`xcn`" #打印函數 [[email protected] ~]# sh fun01.sh i am xcn
範例2:使用行數及函數傳參,腳本傳參實現,對任意指定URL判斷異常
#!/bin/bash function check_url( ){ curl -I -s $1|head -1 && return 0||return 1 } check_url $1 測試結果: [[email protected]