Shell est un interpréteur de ligne de commande qui permet à l'utilisateur d'interagir avec le système. Il est chargé de prendre les entrées de l'utilisateur et d'afficher la sortie.
Les scripts shell sont une série de commandes écrites dans l'ordre d'exécution. Ces scripts peuvent contenir des fonctions, des boucles, des commandes, des variables. Les scripts permettent aux utilisateurs d'enregistrer facilement certaines séquences de codes qui peuvent être utilisées encore et encore. Les scripts shell peuvent également avoir des commentaires pour augmenter la lisibilité.
Un script shell doit être enregistré avec l'extension .sh .
Pour faire savoir au système Linux que le fichier est un script shell, le fichier doit commencer par le shebang construire.
#!/bin/bash OR #!/bin/sh
Après cela, le script peut contenir des commandes, des fonctions, des boucles, des vérifications conditionnelles, etc.
Un bon script contient toujours des commentaires qui le rendent lisible.
Créer et exécuter un script shell de base
Un script shell peut être créé à l'aide de vi, de la commande cat ou de l'éditeur de texte normal dans l'interface graphique.
Créons un script shell de base en utilisant vi
$ vi basic_script.sh
Cela vous mènera à l'éditeur vi. Ajoutez les lignes suivantes :
#!/bin/bash whoami date
Ce simple script doit afficher l'utilisateur actuel suivi de la date.
Pour enregistrer et quitter l'éditeur vi :
- Appuyez sur ÉCHAP
- Tapez :
- Tapez "wq"
- Appuyez sur Entrée
Par défaut, le créateur du script n'obtient pas d'autorisation d'exécution pour le fichier.
Pour changer cela :
$ chmod +x basic_script.sh
Cela vous donnera (utilisateur actuel) la permission d'exécuter le fichier.
Pour exécuter le script :
$ bash basic_script.sh
La première ligne de sortie correspond à la commande "whoami" et la deuxième ligne à la commande "date".
Une autre façon d'exécuter le script est :
$ ./basic_script.sh
L'exécution du fichier de cette manière peut nécessiter que l'utilisateur donne d'abord l'autorisation. L'exécuter avec "bash" ne nécessite pas d'autorisation.
Le même script s'exécute avec 'bash' avant, mais ayant des problèmes d'autorisation lors d'une tentative d'exécution directe. La raison pour laquelle cela se produit est que la commande bash [filename] n'a besoin que de l'autorisation de lecture du fichier.
Alors que la commande ./[filename] exécute le fichier en tant qu'exécutable et nécessite donc l'autorisation d'exécution. Cette question a été répondue en détail sur StackExchange.
En général, il est préférable de fournir une autorisation exécutable.
Utiliser des variables dans les scripts shell
Les scripts peuvent inclure des variables définies par l'utilisateur. En fait, à mesure que les scripts deviennent volumineux, il est essentiel d'avoir des variables clairement définies. Les variables de nature auto-descriptive sont une autre qualité d'un bon script.
Ajoutez les lignes suivantes au script :
#!/bin/bash #This is a comment #defining a variable GREETINGS="Hello! How are you" echo $GREETINGS
SALUTATIONS est la variable définie et accessible ultérieurement à l'aide de '$'.
Il ne doit pas y avoir d'espace dans la ligne où les variables reçoivent une valeur.
Exécutons le script :
Lire l'entrée depuis la ligne de commande
Les scripts shell peuvent être rendus interactifs avec la possibilité d'accepter les entrées de la ligne de commande. La commande de lecture peut être utilisée pour stocker l'entrée de la ligne de commande dans une variable.
#!/bin/bash #This is a comment #defining a variable echo "What is your name?" #reading input read NAME #defining a variable GREETINGS="Hello! How are you" echo $NAME $GREETINGS
Une variable NOM a été utilisé pour accepter les entrées de la ligne de commande.
A l'exécution du script :
Définir les fonctions
Les utilisateurs peuvent définir leurs propres fonctions dans un script. Ces fonctions peuvent prendre plusieurs arguments.
Dans le script ajoutez :
#!/bin/bash #This is a comment #defining a variable echo "What is the name of the directory you want to create?" #reading input read NAME #defining a variable echo "Creating $NAME ..." mkcd () { mkdir "$NAME" cd "$NAME" } mkcd echo "You are now in $NAME"
Ce script demandera à l'utilisateur un nom de répertoire. Il créera ensuite le répertoire et le cd dedans.
Conclusion
Nous avons vu comment les scripts peuvent être utilisés pour exécuter des commandes dans un ordre sériel. Les scripts aident les utilisateurs à réduire la redondance et à gagner du temps. Les scripts peuvent également être partagés entre différents utilisateurs.
Les scripts que nous avons vus dans ce didacticiel étaient assez basiques, les scripts peuvent également être conçus pour effectuer des tâches complexes. Pour en savoir plus sur les scripts, consultez ceci.