Fungsi cangkerang


Linux shell membenarkan pengguna mentakrifkan fungsi, yang kemudiannya boleh dipanggil sesuka hati dalam skrip shell.

Format definisi fungsi dalam shell adalah seperti berikut:

[ function ] funname [()]

{

    action;

    [return int;]

}

Arahan:

  • 1 Function fun() boleh ditakrifkan, atau menyeronokkan ( boleh digunakan terus ) takrifan tanpa sebarang parameter.

  • 2. Parameter return, anda boleh menambah: return to display Jika tidak, hasil daripada menjalankan arahan terakhir akan digunakan sebagai nilai pulangan. return diikuti dengan nilai n(0-255

Contoh berikut mentakrifkan fungsi dan memanggilnya:

#!/bin/bash
# author:php中文网
# url:www.php.cn

demoFun(){
    echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"

Hasil output:

rreee

ditakrifkan di bawah Fungsi dengan pernyataan pulangan:

-----函数开始执行-----
这是我的第一个 shell 函数!
-----函数执行完毕-----

Keluaran adalah serupa dengan yang berikut:

#!/bin/bash
# author:php中文网
# url:www.php.cn

funWithReturn(){
    echo "这个函数会对输入的两个数字进行相加运算..."
    echo "输入第一个数字: "
    read aNum
    echo "输入第二个数字: "
    read anotherNum
    echo "两个数字分别为 $aNum 和 $anotherNum !"
    return $(($aNum+$anotherNum))
}
funWithReturn
echo "输入的两个数字之和为 $? !"

Nilai pulangan fungsi diperolehi oleh $? ditakrifkan sebelum digunakan. Ini bermakna bahawa fungsi mesti diletakkan pada permulaan skrip dan tidak boleh digunakan sehingga penterjemah shell pertama kali menemuinya. Hanya gunakan nama fungsinya

Dalam Shell, parameter boleh dihantar kepadanya apabila memanggil fungsi Di dalam badan fungsi, nilai parameter diperolehi dalam bentuk $n Contohnya, $1 mewakili parameter pertama dan $2 mewakili parameter kedua

Contoh fungsi dengan parameter:
这个函数会对输入的两个数字进行相加运算...
输入第一个数字: 
1
输入第二个数字: 
2
两个数字分别为 1 和 2 !
输入的两个数字之和为 3 !

Hasil keluaran:

#!/bin/bash
# author:php中文网
# url:www.php.cn

funWithParam(){
    echo "第一个参数为  !"
    echo "第二个参数为  !"
    echo "第十个参数为  !"
    echo "第十个参数为  !"
    echo "第十一个参数为  !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73

Perhatikan bahawa $10 tidak boleh mendapatkan parameter kesepuluh dan ia adalah perlu untuk mendapatkan parameter kesepuluh ${10}. n>=10, anda perlu menggunakan ${n} untuk mendapatkan parameter

Selain itu, terdapat beberapa aksara khas yang digunakan untuk memproses parameter: