Latest web development tutorials

funkcja Shell

linux powłoki może być funkcje zdefiniowane przez użytkownika, można łatwo wywołać w skryptach powłoki.

Definition Format funkcję powłoki, co następuje:

[ function ] funname [()]

{

    action;

    [return int;]

}

Objaśnienie:

  • 1, może mieć funkcję zabawy () definiuje się jako bezpośrednią zabawy () jest określony, bez parametrów.
  • 2, mogą być wyświetlane parametry powrotne dodatkowo: powrót powrót, jeśli nie, to wynik będzie ostatni run polecenia, jako wartość zwracana. a następnie zwraca wartość N (0-255

Poniższy przykład definiuje funkcję i połączenia:

#!/bin/bash
# author:本教程
# url:www.w3big.com

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

wyjście:

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

Poniższa definicja funkcji z instrukcji return:

#!/bin/bash
# author:本教程
# url:www.w3big.com

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

Wyjście podobne do następujących:

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

Funkcja Wartość zwracana po wywołaniu tej funkcji za pomocą $? Uzyskuje.

Uwaga: Wszystkie funkcje muszą być zdefiniowane przed użyciem. Oznacza to, że funkcja musi być umieszczony na początku scenariusza do interpretera powłoki, gdy po raz pierwszy odkryto, może być używany. Wywołanie funkcji przy użyciu tylko jego nazwę stanowiska.


Argumenty funkcji

In the Shell, można przekazać parametry do którego funkcja jest wywoływana. W ciele funkcji wewnątrz, aby uzyskać wartość parametru w postaci $ n, na przykład $ 1 dla pierwszego argumentu, $ 2 dla drugiego parametru ...

Przykład funkcji z parametrami:

#!/bin/bash
# author:本教程
# url:www.w3big.com

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

wyjście:

第一个参数为 1 !
第二个参数为 2 !
第十个参数为 10 !
第十个参数为 34 !
第十一个参数为 73 !
参数总数有 11 个!
作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 !

Zauważ, że $ 10 nie może dostać jedną dziesiątą parametrów, uzyskać potrzebne parametry dziesiątego $ {10}. Gdy n> = 10, trzeba użyć $ {n}, aby uzyskać parametry.

Ponadto, istnieje kilka parametrów do obsługi znaków specjalnych:

Obsługa parametrów wyjaśnienie
$ # Liczba parametrów przekazane do skryptu
$ * W jednym wyświetlaczy smyczkowych wszystkie parametry przekazywane do skryptu
$$ Bieżący numer ID procesu skryptu działa
$! Wreszcie, proces działający w tle ID numer
$ @ * $ Z tego samego, ale kiedy użyć cudzysłowu i zwraca każdy parametr w cudzysłów.
$ - Shell wyświetla bieżącą opcję, aby użyć tego samego polecenia zestaw funkcji.
$? Wyświetla kod zakończenia ostatniego polecenia. 0 oznacza brak błędów, a każda inna wartość oznacza błąd.