1. 程式人生 > >shell函數

shell函數

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]
/* */ ~]# sh fun01.sh i am xcn
#!/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]
*/ ~]# sh check_web_by_fun.sh baidu.com HTTP/1.1 200 OK


本文出自 “小菜鳥” 博客,請務必保留此出處http://baishuchao.blog.51cto.com/12918589/1942785

shell函數