Comment écrire et utiliser des fonctions et des bibliothèques de shell personnalisés

Comment écrire et utiliser des fonctions et des bibliothèques de shell personnalisés

Dans Linux, les scripts shell nous aident de nombreuses manières différentes, notamment l'exécution ou même l'automatisation de certaines tâches d'administration système, la création d'outils de ligne de commande simples et bien d'autres.

Dans ce guide, nous montrerons à de nouveaux utilisateurs de Linux où stocker de manière fiable les scripts de shell personnalisés, expliquer comment écrire des fonctions et des bibliothèques de shell personnalisés, utiliser des fonctions à partir de bibliothèques dans d'autres scripts.

Où stocker les scripts de coquille

Afin d'exécuter vos scripts sans taper un chemin complet / absolu, ils doivent être stockés dans l'un des répertoires du $ Chemin variable d'environnement.

Pour vérifier votre $ Chemin, Issue la commande ci-dessous:

$ echo $ chemin / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / jeux: / usr / local / jeux 

Normalement, si le répertoire poubelle existe dans un répertoire domestique des utilisateurs, il est automatiquement inclus dans son / elle $ Chemin. Vous pouvez stocker vos scripts de coquille ici.

Par conséquent, créez le poubelle répertoire (qui peut également stocker Perler, Awk ou Python scripts ou tout autre programme):

$ mkdir ~ / bin 

Ensuite, créez un répertoire appelé lib (abréviation pour les bibliothèques) où vous garderez vos propres bibliothèques. Vous pouvez également conserver des bibliothèques pour d'autres langues telles que C, Python et ainsi de suite,. En dessous, créez un autre répertoire appelé shot; Cela vous stockera particulièrement les bibliothèques de shell:

$ mkdir -p ~ / lib / sh 

Créez vos propres fonctions et bibliothèques de shell

UN fonction du shell est un groupe de commandes qui effectuent une tâche spéciale dans un script. Ils travaillent de manière similaire aux procédures, sous-programmes et fonctions dans d'autres langages de programmation.

La syntaxe pour écrire une fonction est:

function_name () liste des commandes 

Par exemple, vous pouvez écrire une fonction dans un script pour afficher le date comme suit:

showDate () date; 

Chaque fois que vous voulez afficher date, Invoquez simplement la fonction ci-dessus en utilisant son nom:

$ showdate 

UN bibliothèque de shell est simplement un script de shell, cependant, vous pouvez écrire une bibliothèque pour ne stocker que vos fonctions que vous pouvez appeler plus tard à partir d'autres scripts shell.

Vous trouverez ci-dessous un exemple de bibliothèque appelée libmyfuncs.shot dans mon ~ / lib / sh Répertoire avec plus d'exemples de fonctions:

#!/ bin / bash #function pour répertorier clairement les répertoires dans Path showPath () oldifs = "$ ifs" #Store Old Internal Field Séparateur IFS =: #Specify Un nouveau séparateur de champ interne pour Dir dans $ PATH; faire écho $ dir; fait ifs = "$ oldifs" #Restore Old Internal Field Séparateur #Function pour afficher des showUsers d'utilisateur enregistrés () echo -e "Vous trouverez ci-dessous l'utilisateur enregistré sur le système: \ n" w #print les détails d'un utilisateur printUserDets () oldifs = "$ ifs" #Store Old Internal Field séparateur IFS =: #Specify Un nouveau séparateur de champ interne Read -p "Entrez le nom d'utilisateur à rechercher:" Uname #read nom d'utilisateur echo "" #read et stocker à partir d'une chaîne ici Valeurs en variables en utilisant: en tant que champ de champ Read -r Nom d'utilisateur Pass Uid Gid Commentaires Homedir Shell <<< "$(cat /etc/passwd | grep "^$uname")" #print out captured values echo -e "Username is : $username\n" echo -e "User's ID : $uid\n" echo -e "User's GID : $gid\n" echo -e "User's Comments : $comments\n" echo -e "User's Home Dir : $homedir\n" echo -e "User's Shell : $shell\n" IFS="$oldifs" #store old internal field separator  

Enregistrer le fichier et rendre l'exécutable de script.

Comment invoquer les fonctions d'une bibliothèque

Pour utiliser une fonction dans un lib, vous devez tout d'abord inclure le lib Dans le script shell où la fonction sera utilisée, dans la forme ci-dessous:

$ ./ chemin / vers / lib ou $ source / path / to / lib 

Vous utiliseriez donc la fonction printUserdets de la lib ~ / lib / sh / libmyfuncs.shot dans un autre script comme indiqué ci-dessous.

Vous n'avez pas à écrire un autre code dans ce script pour imprimer les détails d'un utilisateur particulier, appelez simplement une fonction existante.

Ouvrez un nouveau fichier avec le nom test.shot:

#!/ bin / bash #include lib . ~ / lib / sh / libmyfuncs.SH #User la fonction de lib printuserdets #exit script exit 0 

Enregistrez-le, puis faites l'exécutable de script et exécutez-le:

$ chmod 755 Test.sh $ ./test.shot 
Écrire des fonctions du shell

Dans cet article, nous vous avons montré où stocker de manière fiable les scripts de shell, comment écrire vos propres fonctions et bibliothèques de shell, invoquer les fonctions des bibliothèques dans des scripts de shell normaux.

Ensuite, nous expliquerons un moyen simple de configurer Vigueur en tant que IDE pour les scripts bass. Jusque-là, restez toujours connecté à Tecmint et partagez également vos réflexions sur ce guide via le formulaire de rétroaction ci-dessous.