fonction Shell
linux shell peut être des fonctions définies par l'utilisateur, alors vous pouvez facilement appeler dans les scripts shell.
Définition Formater la fonction shell comme suit:
[ function ] funname [()] { action; [return int;] }
Explication:
- 1, peut prendre la fonction fun () est définie comme étant un amusement direct () est défini, sans aucun paramètre.
- 2, les paramètres de retour peuvent être affichés plus: le retour de retour, sinon, le résultat sera la dernière commande run, comme la valeur de retour. suivi de la valeur de retour de n (0-255
L'exemple suivant définit une fonction et un appel:
#!/bin/bash # author:本教程 # url:www.w3big.com demoFun(){ echo "这是我的第一个 shell 函数!" } echo "-----函数开始执行-----" demoFun echo "-----函数执行完毕-----"
sortie:
-----函数开始执行----- 这是我的第一个 shell 函数! -----函数执行完毕-----
La définition suivante d'une fonction avec une instruction de retour:
#!/bin/bash # author:本教程 # url:www.w3big.com funWithReturn(){ echo "这个函数会对输入的两个数字进行相加运算..." echo "输入第一个数字: " read aNum echo "输入第二个数字: " read anotherNum echo "两个数字分别为 $aNum 和 $anotherNum !" return $(($aNum+$anotherNum)) } funWithReturn echo "输入的两个数字之和为 $? !"
Une sortie similaire à ce qui suit:
这个函数会对输入的两个数字进行相加运算... 输入第一个数字: 1 输入第二个数字: 2 两个数字分别为 1 和 2 ! 输入的两个数字之和为 3 !
Fonction valeur de retour après avoir appelé cette fonction par $? Est obtenu.
Remarque: Toutes les fonctions doivent être définies avant l'utilisation. Cela signifie que la fonction doit être placée au début du script jusqu'à ce que l'interpréteur de commandes quand il a été découvert, il peut être utilisé. Appelez la fonction en utilisant uniquement son nom de fonction.
Arguments de la fonction
Dans le Shell, vous pouvez passer des paramètres à laquelle la fonction est appelée. Dans le corps de la fonction à l'intérieur, pour obtenir la valeur d'un paramètre sous la forme de $ n, par exemple, 1 $ pour le premier argument, $ 2 pour le second paramètre ...
Exemple de fonction avec des paramètres:
#!/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
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 un dixième paramètres, obtenir les dixième paramètres doivent $ {10}. Lorsque n> = 10, vous devez utiliser $ {n} pour obtenir les paramètres.
En outre, il existe plusieurs paramètres pour traiter les caractères spéciaux:
Gestion des paramètres | explication |
---|---|
# $ | Le nombre de paramètres transmis au script |
$ * | Dans une chaîne unique affiche tous les paramètres passés au script |
$$ | Le nombre actuel processus d'identification de l'exécution du script |
$! | Enfin, un processus en cours d'exécution dans le numéro d'ID de fond |
$ @ | * $ Avec le même, mais lorsque vous utilisez des guillemets, et retourne chaque paramètre entre guillemets. |
$ - | Shell affiche l'option actuelle pour utiliser la même commande de réglage de fonction. |
$? | Affiche l'état de sortie de la dernière commande. 0 indique une absence d'erreurs, ainsi que toute autre valeur indique une erreur. |