shell函數(shù)

  1. 函數(shù)
    shell中的函數(shù)與一般程序設(shè)計(jì)語(yǔ)言中的函數(shù)概念相同,將一組語(yǔ)句定義為一個(gè)函數(shù),當(dāng)想執(zhí)行該組語(yǔ)句時(shí)調(diào)用該函數(shù)即可,通過參數(shù)可變實(shí)現(xiàn)功能擴(kuò)展,提高代碼重用性,而且模塊兒化開發(fā)更容易維護(hù)
  2. 定義函數(shù)
    function fun1() { 
    command
    }
    function fun2 {
    command
    }
    fun3(){
    command
    }
    
    以上三種方式都可以定義函數(shù),推薦使用第一種方式,在函數(shù)中可以使用return語(yǔ)句返回一個(gè)值,在函數(shù)結(jié)束時(shí)返回給當(dāng)前程序,可用$?取得。函數(shù)調(diào)用時(shí),使用fun_name的形式,不需要加括號(hào),這和一般編程語(yǔ)言語(yǔ)法出入較大,需注意。
  3. 函數(shù)的調(diào)用與運(yùn)行時(shí)參數(shù)
    函數(shù)調(diào)用
    funname para1 para2 para3
    在函數(shù)中可以通過$1 $2 $3 $# $? $* $@使用這些參數(shù),父腳本參數(shù)臨時(shí)被隱藏。
    function f1(){
            echo "you type $# param"
        echo "they are $@ "
    }
    function f2(){
        echo "you type $# param in f2 call"
        echo "they are $@"
    }
    f1 
    f2 1 2 3 4 5
    
    輸出如下
    $ bash test_param.sh 
    you type 0 param
    they are  
    you type 5 param in f2 call
    they are 1 2 3 4 5
    
  4. 函數(shù)示例(檢測(cè)url是否可達(dá),使用wget工具,根據(jù)返回值來判斷)
    function usage(){
        echo "usage: $0 url"
        exit 1
    }
    function check(){
        wget --spider -q -o /dev/null -T 5 $1
        if [ $? -eq 0 ]
        then
                echo "url test susscefully"
        else
            echo "failed"
        fi
    }
    function main(){
        if [ $# -ne 1 ]
        then
            usage
        fi
        check $1
    }
    main $*
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容