天天看點

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:開發腳本建立兩個簡單函數并調用執行

<code>#!/bin/bash</code>

<code>xcn( ) {         </code><code>#定義函數</code>

<code>echo</code> <code>"i am xcn"</code>

<code>}</code>

<code>xcn          </code><code>#調用函數</code>

<code>執行結果:</code>

<code>[root@XCN ~]</code><code># sh fun01.sh </code>

<code>i am xcn</code>

<code>xcn( ) {</code>

<code>echo</code> <code>"`xcn`"</code>   <code>#列印函數</code>

範例2:使用行數及函數傳參,腳本傳參實作,對任意指定URL判斷異常

<code>function</code> <code>check_url( ){</code>

<code>curl -I -s $1|</code><code>head</code> <code>-1 &amp;&amp; </code><code>return</code> <code>0||</code><code>return</code> <code>1</code>

<code>check_url $1</code>

<code>測試結果:</code>

<code>[root@XCN ~]</code><code># sh check_web_by_fun.sh baidu.com</code>

<code>HTTP</code><code>/1</code><code>.1 200 OK</code>

本文轉自 baishuchao 51CTO部落格,原文連結:http://blog.51cto.com/baishuchao/1942785

上一篇: svn 常用操作