Fonction coque


Le shell Linux permet aux utilisateurs de définir des fonctions, qui peuvent ensuite être appelées à volonté dans des scripts shell.

Le format de définition des fonctions dans le shell est le suivant :

[ function ] funname [()]

{

    action;

    [return int;]

}

Instructions :

  • 1. La fonction fun() peut être définie, ou fun. (peut être utilisé directement) définition sans aucun paramètre.

  • 2. Retour du paramètre, vous pouvez ajouter : return to display Sinon, le résultat de l'exécution de la dernière commande sera utilisé comme valeur de retour. return suivi de la valeur n(0-255

L'exemple suivant définit une fonction et l'appelle :

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

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

Résultat de sortie :

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

défini ci-dessous Une fonction avec une instruction return :

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

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

Le résultat est similaire à ce qui suit :

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

La valeur de retour de la fonction est obtenue par $? être défini avant utilisation. Cela signifie que la fonction doit être placée au début du script et ne peut pas être utilisée jusqu'à ce que l'interpréteur shell la découvre pour la première fois. Utilisez simplement ses paramètres de fonction

Dans Shell, vous pouvez. transmettez des paramètres à une fonction lors de son appel. Dans le corps de la fonction, vous pouvez obtenir la valeur du paramètre sous la forme $n. Par exemple, $1 représente le premier paramètre et $2 représente le deuxième paramètre...<🎜. >

Exemple de fonction avec paramètres :
#!/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

Résultat de sortie :

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

Notez que $10 ne peut pas obtenir le dixième paramètre, et il est nécessaire d'obtenir le dixième paramètre ${10}. Lorsque n>=10, vous devez utiliser ${n} pour obtenir les paramètres

De plus, plusieurs caractères spéciaux sont utilisés pour traiter les paramètres :

.