étude de coquille-15 jours - coquille 函数

1. Utilisation des fonctions

Une fonction est un bloc de code de script, vous pouvez le nommer vous-même et utiliser cette fonction n'importe où dans le script. Pour utiliser cette fonction, utilisez simplement le nom de la fonction. Les avantages de l'utilisation des fonctions: modularité, lisibilité du code.

( 1) Syntaxe de création de fonction

Méthode 1:

nom de la fonction { 
commandes 
}

Remarque: nom est le nom unique de la fonction

Méthode 2: les crochets après le nom indiquent que vous définissez une fonction

name () { 
commandes 
}

Syntaxe de la fonction d'appel:

Nom de la fonction paramètre 1 paramètre 2…

Lors de l'appel d'une fonction, vous pouvez transmettre des paramètres. Utilisez $ 1, $ 2 ... pour faire référence aux paramètres passés dans la fonction

( 2) Utilisation des fonctions

Exemple 1:

[root @ test shell] # vi fun.sh 
#! / bin / bash 
function test { 
    echo "test function"   
} # Le  contenu ci-dessus définit la fonction 
test 
#call function [root @ test shell] # sh fun.sh  
test function 
[root @test shell] #

 Remarque: Pour l'utilisation des noms de fonction, si des noms de fonction répétés sont définis dans un script, le dernier prévaudra.

Par exemple:

[root @ test shell] # sh 
fonction de test fun.sh  
[root @ test shell] # vi fun.sh  
#! / bin / bash 
test de fonction { 
    echo "test function one" 
} 
fonction test { 
    echo "test function two" 
} 
test 
[root @ test shell] # sh fun.sh  
test fonction deux 
[root @ test shell] #

( 3) Valeur de retour

Utilisez la commande return pour quitter la fonction et renvoyer un code de sortie spécifique.

[root @ test shell] # vi fun.sh  
#! / bin / bash 
function test { 
    echo "test function one" 
    ls / home 
    return 2 
} 
test 
[root @ test shell] # sh fun.sh  
test function one 
1.txt YDSOC_C4I_SYSLOG YDSOC_C4I_SYSLOG_20201009.tar.gz aa bb cc client111.crt client111.csr client111.key test1 
[root @ test shell] # echo $?

2 #Return value, la valeur de retour spécifiée

Remarque: La détermination du code d'état doit être exécutée à la fin de la fonction pour renvoyer la valeur de retour, la plage de valeurs du code d'état (0 ~ 255). 

[root @ test shell] # vi fun.sh  
#! / bin / bash 
function test { 
    echo "test function one" 
    ls / home 
    return 2 
    ls / root 
} 
test 
[root @ test shell] # sh fun.sh  
test function one 
1.txt YDSOC_C4I_SYSLOG YDSOC_C4I_SYSLOG_20201009.tar.gz aa bb cc client111.crt client111.csr client111.key test1 
[root @ test shell] # echo $? 
2 
[root @ test shell] #

 Remarque: return ajoute simplement une ligne à la fin de la fonction, puis renvoie le nombre. Il ne peut empêcher l'exécution de la commande qu'après l'exécution de la fonction, et ne peut pas forcer la fermeture du script entier. exit L'ensemble du script se ferme directement.

( 4) Attribuer une fonction à une variable

Le nom de la fonction équivaut à une commande.

[root @ test shell] # cat fun.sh  
#! / bin / bash 
function test { 
    read -p "Entrez un entier:" int 
        echo $ [$ int + 1] 
} 
 
sum = $ (test) 
echo "le résultat est $ sum " 
[root @ test shell] # sh fun.sh entre  
un entier: 1 
résultat est 2 
[root @ test shell] #

( 5) Transfert des paramètres de fonction

Exemple 1: Passer des paramètres au paramètre positionnel $ 1 dans la fonction via le script

[root @ test shell] # cat fun.sh  
#! / bin / bash 
function test { 
        rm -rf $ 1 
} 
test $ 1 
[root @ test shell] # touch 1.txt 
[root @ test shell] # ls 
1.txt fun .sh 
[root @ test shell] # sh fun.sh 1.txt  
[root @ test shell] # ls 
fun.sh 
[root @ test shell] #

Exemple 2: Passer des paramètres directement lors de l'appel d'une fonction

[root @ test shell] # touch /home/test.txt 
[root @ test shell] # vi fun.sh  
#! / bin / bash 
fonction test { 
        rm -rf $ 1 
} 
test /home/test.txt 
[root @ test shell] # ls / home 
test.txt 
[root @ test shell] # sh fun.sh  
[root @ test shell] # ls / home 
[root @ test shell] #

Exemple 3: Passer plusieurs paramètres dans une fonction

[root @ test shell] # vi fun.sh  
#! / bin / bash 
fonction test { 
        rm -rf $ 1 
        rm -rf $ 2 
} 
test / home / test1 / home / test2 
[root @ test shell] # touch / home / test {1,2} 
[root @ test shell] # ls / home 
test1 test2 
[root @ test shell] # sh fun.sh  
[root @ test shell] # ls / home 
[root @ test shell] #

( 6) Traitement variable dans la fonction

Il existe deux types de variables utilisées par les fonctions:

Variables locales, variables globales.

Variables globales: Par défaut, les variables que vous définissez dans le script sont des variables globales et les variables que vous définissez en dehors de la fonction peuvent également être utilisées à l'intérieur de la fonction.

[root @ test shell] # cat fun.sh  
#! / bin / bash 
function test { 
        num = $ [var * 2] 
} 
read -p "input a num:" var 
test 
echo la nouvelle valeur est: $ num 
[root @test shell] # sh fun.sh  
input a num: 1 
la nouvelle valeur est: 2 
[root @ test shell] #

Numéro public personnel:

image.png

Je suppose que tu aimes

Origine blog.51cto.com/13440764/2575392
conseillé
Classement