GNU/Linux >> Tutoriels Linux >  >> Linux

Bash Beginner Series #1 :Créez et exécutez votre premier script shell Bash

Si vous devez le faire plus d'une fois, automatisez-le !

Vous vous retrouverez souvent à répéter une seule tâche sous Linux encore et encore. Il peut s'agir d'une simple sauvegarde d'un répertoire, du nettoyage de fichiers temporaires ou même du clonage d'une base de données.

L'automatisation d'une tâche est l'un des nombreux scénarios utiles où vous pouvez tirer parti de la puissance des scripts bash.

Laissez-moi vous montrer comment créer un script shell bash simple, comment exécuter un script bash et quelles sont les choses que vous devez savoir sur les scripts shell.

Créer et exécuter votre premier script shell

Commençons par créer un nouveau répertoire nommé scripts qui hébergera tous nos scripts bash.

mkdir scripts
cd scripts

Maintenant, dans ce 'répertoire de scripts', créez un nouveau fichier nommé hello.sh en utilisant la commande cat :

cat > hello.sh

Insérez-y la ligne suivante en la tapant dans le terminal :

echo 'Hello, World!'

Appuyez sur Ctrl+D pour enregistrer le texte dans le fichier et sortir de la commande cat.

Vous pouvez également utiliser un éditeur de texte basé sur un terminal comme Vim, Emacs ou Nano. Si vous utilisez un ordinateur de bureau Linux, vous pouvez également utiliser un éditeur de texte graphique comme Gedit pour ajouter le texte à ce fichier.

Donc, en gros, vous utilisez la commande echo pour imprimer "Hello World". Vous pouvez utiliser cette commande directement dans le terminal, mais dans ce test, vous exécuterez cette commande via un script shell.

Rendez maintenant le fichier hello.sh exécutable en utilisant la commande chmod comme suit :

chmod u+x hello.sh

Et enfin, exécutez votre premier script shell en faisant précéder le hello.sh avec votre "bash" shell souhaité :

bash hello.sh

Vous verrez Hello, World! imprimé sur l'écran. C'était probablement le programme Hello World le plus simple que vous ayez jamais écrit, n'est-ce pas ?

Voici une capture d'écran de toutes les étapes que vous avez vues ci-dessus :

Convertissez votre script shell en script bash

Confus? Ne soyez pas confus pour l'instant. Je vais t'expliquer.

Bash, qui est l'abréviation de "Bourne-Again shell", n'est qu'un type parmi de nombreux shells disponibles sous Linux.

Un shell est un interpréteur de ligne de commande qui accepte et exécute des commandes. Si vous avez déjà exécuté une commande Linux auparavant, vous avez utilisé le shell. Lorsque vous ouvrez un terminal sous Linux, vous exécutez déjà le shell par défaut de votre système.

Bash est souvent le shell par défaut dans la plupart des distributions Linux. C'est pourquoi bash est souvent synonyme de shell.

Les scripts shell ont souvent presque les mêmes syntaxes, mais ils diffèrent aussi parfois. Par exemple, l'index du tableau commence à 1 dans Zsh au lieu de 0 dans bash. Un script écrit pour le shell Zsh ne fonctionnera pas de la même manière dans bash s'il contient des tableaux.

Pour éviter les mauvaises surprises, vous devez indiquer à l'interpréteur que votre script shell est écrit pour le shell bash. Comment tu fais ça? Vous utilisez du shebang !

La ligne SheBang au début du script shell

La ligne "#!/bin/bash" est appelée la ligne shebang et dans certains documents, elle est appelée la ligne hashbang et c'est parce qu'elle commence par les deux caractères hash '#' et bang '!'.

#! /bin/bash

echo 'Hello, World!'

Lorsque vous incluez la ligne "#!/bin/bash" tout en haut de votre script, le système sait que vous souhaitez utiliser bash comme interprète pour votre script. Ainsi, vous pouvez exécuter directement le script hello.sh sans le faire précéder de bash.

Ajouter votre script shell au PATH (afin qu'il peut être exécuté depuis n'importe quel répertoire)

Vous avez peut-être remarqué que j'ai utilisé ./hello.sh pour exécuter le script; vous obtiendrez une erreur si vous omettez le premier ./

[email protected]:~/scripts$ hello.sh
hello.sh: command not found

Bash pensait que vous essayiez d'exécuter une commande nommée hello.sh. Lorsque vous exécutez une commande sur votre terminal ; le shell recherche cette commande dans un ensemble de répertoires stockés dans la variable PATH.

Vous pouvez utiliser echo pour afficher le contenu de cette variable PATH :

echo $PATH
/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Le caractère deux-points (:) sépare le chemin de chacun des répertoires que votre shell analyse chaque fois que vous exécutez une commande.

Les commandes Linux telles que echo, cat, etc. peuvent être exécutées de n'importe où car leurs fichiers exécutables sont stockés dans les répertoires bin. Les répertoires bin sont inclus dans le PATH. Lorsque vous exécutez une commande, votre système vérifie le PATH pour tous les emplacements possibles qu'il doit rechercher pour trouver l'exécutable de cette commande.

Si vous souhaitez exécuter votre script bash depuis n'importe où, comme s'il s'agissait d'une commande Linux normale, ajoutez l'emplacement de votre script shell à la variable PATH.

Tout d'abord, obtenez l'emplacement du répertoire de votre script (en supposant que vous êtes dans le même répertoire), utilisez la commande PWD :

pwd

Utilisez la commande export pour ajouter votre répertoire de scripts à la variable PATH.

export PATH=$PATH:/home/user/scripts
Remarquez que j'ai ajouté le 'répertoire des scripts' à la toute fin de notre variable PATH. Pour que le chemin personnalisé soit recherché après les répertoires standard.

Le moment de vérité est arrivé; lancez hello.sh :

[email protected]:~/scripts$ hello.sh
Hello, World!

Ça marche! Cela nous amène à la fin de ce tutoriel. J'espère que vous avez maintenant une idée de base sur les scripts shell. Vous pouvez télécharger le PDF ci-dessous et mettre en pratique ce que vous avez appris avec quelques exemples de défis de script. Leurs solutions sont également fournies au cas où vous auriez besoin d'indices.

Bash Chapter 1 Practice QuestionsProblems et leur solution pour mettre en pratique ce que vous venez d'apprendre dans ce chapitreBash-Chapter-1-Practice-Questions-Linux-Handbook.pdf26 KB

Depuis que je vous ai présenté la variable PATH, restez à l'écoute pour le prochain tutoriel de script bash où je discuterai en détail des variables shell.


Linux
  1. Créer et exécuter un script Shell dans CentOS 8 - Processus étape par étape pour le faire ?

  2. Bash Beginner Series #8 :Boucles dans Bash

  3. Comment exécuter un script shell sur une console Unix ou un terminal Mac ?

  4. Exécuter le script bash en tant que démon

  5. Exécutez la commande bash sur le pipeline jenkins

Comment exécuter un script bash

Bash Beginner Series #2 :Comprendre les variables dans les scripts shell Bash

Bash Beginner Series #3 :Passer des arguments aux scripts Bash

Bash Beginner Series #7 :Prise de décision avec des instructions If Else et Case Statements

Bash Beginner Series #10 :Automatisation avec Bash

Comment créer et exécuter un script shell dans Ubuntu 22.04