Écrire et exécuter son premier script Bash
Créez un script Bash, vérifiez sa syntaxe, rendez-le exécutable et distinguez bash script.sh de ./script.sh.
Démarrer la leçon interactiveUn script Bash est un fichier texte dont Bash exécute les commandes dans l'ordre. Enregistrez un shebang et une commande dans script.sh, vérifiez la syntaxe, accordez le droit d'exécution, puis lancez ./script.sh. Pour diagnostiquer un problème, vous pouvez aussi utiliser bash script.sh. La leçon sur le premier script reprend ce parcours dans un environnement isolé.
Enregistrer un shebang et une commande visible
Créez script.sh avec ces deux lignes :
#!/usr/bin/env bash
printf '%s\n' 'Hello World'
Lors d'un lancement direct, le shebang demande au système de trouver bash dans le chemin de recherche actuel. #!/bin/bash convient aussi si Bash se trouve bien à cet emplacement sur la machine cible.
Inspectez le fichier :
cat script.sh
Vous repérerez un fichier vide, un mauvais nom ou un enregistrement dans un autre dossier. Si le fichier vient de Windows, vérifiez les fins de ligne Unix LF : un retour chariot caché peut provoquer « bad interpreter ».
Vérifier la syntaxe sans exécuter
bash -n script.sh
L'absence de sortie signifie seulement que Bash n'a trouvé aucune erreur de syntaxe. Les chemins, droits et résultats ne sont pas validés.
Rendre le script exécutable
chmod u+x script.sh
Vérifiez le droit :
ls -l script.sh
Le groupe de trois caractères du propriétaire doit désormais contenir x. chmod change le mode du fichier, pas son contenu.
Distinguer les deux modes de lancement
Lancez le fichier du dossier courant :
./script.sh
Le préfixe ./ fournit un chemin. La plupart des shells ne recherchent pas automatiquement dans le dossier courant.
Vous pouvez aussi confier le fichier explicitement à Bash :
bash script.sh
Cette forme exige un fichier lisible, mais pas le droit d'exécution. Bash lit le contenu indépendamment du shebang, ce qui aide à séparer un problème de lecture ou de syntaxe d'un échec de lancement direct.
Diagnostiquer le message reçu
- No such file or directory : confirmez le dossier et le nom avec pwd et ls.
- Permission denied : vérifiez le droit d'exécution, le propriétaire, le dossier et les options de montage.
- Bad interpreter : examinez le chemin du shebang et les fins de ligne.
- Syntax error : lancez bash -n script.sh et inspectez la ligne indiquée.
- Sortie inattendue : testez chaque commande séparément avec les mêmes données.
Poursuivez avec les variables Bash, les fonctions ou l'exemple de sauvegarde plus sûre. La documentation GNU Bash sur les scripts détaille leur lancement.
Références
Ces liens de documentation fournissent des informations fiables sur les commandes utilisées dans cet article.
À suivre
Créez une sauvegarde Bash qui valide la source, évite l'écrasement, supprime les archives partielles et vérifie le fichier tar.