Comment écrire des fonctions et des boucles dans Bash?
Le moyen le plus simple de réduire la quantité de code que vous devez écrire dans un programme est de trouver des moyens de réutiliser le code.
Le script shell Bash est un langage CLI ( Command Line Interface) puissant et polyvalent. Le moyen le plus simple de réduire la quantité de code que vous devez écrire dans un programme est de trouver des moyens de réutiliser le code. Les boucles et les fonctions sont deux façons d'y parvenir. Comme dans n'importe quel langage, plus vous connaissez la syntaxe (ou où trouver la syntaxe), mieux vous serez à l'écriture du code. Le code fourni dans cet article est un programme exécutable qui s'exécutera sous UNIX, Linux ou Mac OS X ou supérieur. Cet article démarre sous Linux à l'invite de commande.
- 1Accédez à Linux et ouvrez une fenêtre de terminal. Tapez la commande suivante à l'invite de commande:
vi FunLoop.sh. Cela créera le fichier que vous allez utiliser comme fichier de script et l'ouvrira pour l'édition. - 2Entrez l'instruction shell sur la première ligne du fichier. Chaque script shell en a besoin pour lui indiquer dans quel shell s'exécuter. Tapez
#!/bin/bash. - 3Créez les variables dont vous aurez besoin pour ce script. Vous en aurez besoin d'un pour capturer le choix saisi par l'utilisateur et d'un autre pour définir le répertoire en fonction du choix de l'utilisateur. Tapez
directory=""etchoice=0. - 4Créez votre première fonction. C'est un code simple et son nom est sensible à la casse. Nommez-le
menuList. Tout ce qui se trouve entre les crochets d'ouverture et de fermeture est le code que vous souhaitez.
Cela créera le fichier que vous allez utiliser comme fichier de script et l'ouvrira pour l'édition. - 5Tapez le nom et les parenthèses sur la première ligne après les variables. Il devrait ressembler à:
menuList(). - 6Tapez un crochet ouvrant sur une autre ligne par lui-même
{. - 7Tapez la commande pour effacer l'écran sur une ligne par lui-même. Il devrait ressembler à ceci:
clear. - 8Tapez les instructions d'écho qui composent le menu.
echo "1. Lancez ls sur mon répertoire personnel." echo "2. Exécutez ls sur le répertoire racine." echo "3. Exécutez ls sur le répertoire bin." echo "4. Quitter le programme."
- 9Tapez un crochet fermant sur une autre ligne par lui-même
}. - 10Créez une fonction pour exécuter la
lscommande. - 11Tapez le nom et les parenthèses sur la première ligne après les variables. Vous devriez ajouter
runLS(). - 12Tapez un crochet ouvrant sur une autre ligne par lui-même
{. - 13Tapez la commande pour exécuter le ls.
ls -la $directoryoù $ directory est celui spécifié par le choix de menu. - 14Tapez un crochet fermant sur une autre ligne par lui-même
}. - 15Créez la boucle et les instructions if pour exécuter vos fonctions.
- 16Créez l'instruction while avec le mot while suivi d'une instruction conditionnelle.
while [$choice -ne 4]. Où$choiceest l'entrée de l'utilisateur et4est l'élément de menu pour dire au programme de fermer,-neest un opérateur conditionnel utilisé dans les scripts de shell bash pour l'évaluation des nombres. - 17Continuez l'instruction while avec le mot-clé do. Tapez
do. - 18Vient ensuite le code que vous souhaitez exécuter à chaque fois que la boucle while s'exécute. Vous avez quatre éléments de menu, vous aurez donc besoin de quatre
ifinstructions et d'un fourre-tout pour les valeurs qui ne répondent pas aux exigences des éléments de menu. Écrivez l'instruction if comme suit:if [$ choice -eq 1] then $ directory = "~ /" runLS elif [$ choice -eq 2] then $ directory = "/" runLS elif [$ choice -eq 3] puis $ directory = "/ bin" runLS elif [$ choice -eq 4] then clear echo "Merci d'utiliser les fichiers de liste" sleep 3 exit else echo "Choix invalide, veuillez réessayer" fi done
Vous en aurez besoin d'un pour capturer le choix saisi par l'utilisateur et d'un autre pour définir le répertoire en fonction du choix de l'utilisateur. - 19Enregistrez et quittez le fichier en tapant: Esc,
:x. - 20Exécutez chmod pour autoriser le fichier à être exécutable. Tapez:
chmod u+x FunLoop.sh. - 21Exécutez le programme en tapant
./FunLoop.sh.
Méthode 1 sur 1: exemple
Exemple de code que vous pouvez utiliser:
! / bin / bash directory = "" choice = 0 menuList () {clear echo "1. Lancez ls sur mon répertoire personnel." echo "2. Exécutez ls sur le répertoire racine." echo "3. Exécutez ls sur le répertoire bin." echo "4. Quitter le programme"} runLS () {ls -la $ directory sleep 2} while [$ choice -ne 4] do menuList read -p "Entrez votre choix:" choice if [$ choice -eq 1] puis $ directory = "~ /" runLS elif [$ choice -eq 2] puis $ directory = "/" runLS elif [$ choice -eq 3] puis $ directory = "/ bin" runLS elif [$ choice -eq 4] puis effacer echo "Merci d'utiliser les fichiers de liste" sleep 3 exit else echo "Choix invalide, veuillez réessayer" fi done - Des scripts incorrects peuvent avoir des effets négatifs sur votre système. Il est important d'être prudent lors de la manipulation de fichiers sur un ordinateur.
- Ordinateur avec Linux, UNIX ou OS X dessus
Lisez aussi: Comment convertir PowerPoint en Word?
En parallèle