Latest web development tutorials

Shell-Funktion

Linux-Shell können benutzerdefinierte Funktionen sein, dann können Sie leicht in Shell-Skripten aufrufen.

Definition-Format die Shell-Funktion wie folgt:

[ function ] funname [()]

{

    action;

    [return int;]

}

Erläuterung:

  • 1 kann Funktion fun () nehmen ist definiert als ein direkter Spaß () definiert werden, ohne Parameter.
  • 2 Rückgabeparameter angezeigt werden können, zusätzlich: Rückkehr Rückkehr, wenn nicht, wird das Ergebnis der letzte Befehl ausgeführt, als Rückgabewert sein. durch den Rückgabewert von n gefolgt (0-255

Das folgende Beispiel definiert eine Funktion und Aufruf:

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

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

Ausgang:

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

Die folgende Definition einer Funktion mit einer return-Anweisung:

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

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

Eine Ausgabe ähnlich der folgenden:

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

Funktion Rückgabewert nach dieser Funktion durch $ Aufruf? Erhalten.

Hinweis: Alle Funktionen müssen vor dem Gebrauch definiert werden. Dies bedeutet, dass die Funktion muss, bis die Shell-Interpreter in den Anfang des Skripts platziert werden, wenn es zum ersten Mal entdeckt wurde, kann es verwendet werden. Rufen Sie die Funktion nur seine Funktion Namen.


Funktionsargumente

In der Shell können Sie Parameter übergeben, auf die die Funktion aufgerufen wird. In der Funktionskörper nach innen, um den Wert eines Parameters in Form von $ n, zum Beispiel zu bekommen, $ 1 für das erste Argument, $ 2 für den zweiten Parameter ...

Beispielfunktion mit den Parametern:

#!/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

Ausgang:

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

Beachten Sie, dass $ 10 nicht ein Zehntel Parameter bekommen können, erhalten die zehnte Parameter $ benötigen {10}. Wenn n> = 10, müssen Sie $ zu verwenden {n}, die Parameter zu erhalten.

Darüber hinaus gibt es mehrere Parameter Sonderzeichen zu behandeln:

Parameterverwaltung Erklärung
$ # Die Anzahl der übergebenen Parameter an das Skript
$ * In einem einzelnen String zeigt alle Parameter an das Skript übergeben
$$ Der aktuelle Prozess-ID-Nummer des Skripts läuft
$! Schließlich läuft ein Prozess im Hintergrund ID-Nummer
$ @ * $ Mit dem gleichen, aber wenn Sie Anführungszeichen verwenden, und die einzelnen Parameter in Anführungszeichen zurück.
$ - Shell zeigt die aktuelle Option, um die gleiche Funktion set-Befehl zu verwenden.
$? Zeigt Exit-Status des letzten Befehls. 0 gibt keine Fehler, und jeder andere Wert zeigt einen Fehler an.