Comment exécuter un script shell à partir d’un script bash
L’exécution d’un script shell dans Bash est l’une des compétences les plus fondamentales et les plus utiles pour quiconque travaille avec des systèmes Linux. Les scripts shell vous permettent d’automatiser des tâches répétitives, de gérer des configurations système et de créer des flux de travail complexes en quelques lignes de code. Que vous soyez un débutant ou un utilisateur expérimenté, maîtriser cela vous fera gagner du temps et des efforts. Dans cet article, nous allons passer en revue chaque étape pour exécuter avec succès un script shell dans Bash, en fournissant des instructions détaillées pour garantir votre compréhension.
Dans ce tutoriel, vous allez apprendre :
- Comment créer un script shell dans Bash
- Comment exécuter un script shell
- Comment gérer les autorisations pour l’exécution d’un script
- Comment exécuter un script à partir d’un autre dans Bash
Étapes d’exécution d’un script shell dans Bash
Pour exécuter un script shell dans Bash, vous devez créer le script, attribuer des autorisations exécutables et enfin exécuter le script dans votre terminal. Allons-y étape par étape.
Créez un script shell :
La première étape de l’exécution d’un script shell dans Bash consiste à créer le fichier de script bash proprement dit. Un script shell est essentiellement un fichier texte brut contenant une série de commandes qui sont exécutées en séquence. Vous pouvez créer ce fichier à l’aide d’un éditeur de texte tel quenano
ouvim
.nano myscript.sh
Après avoir ouvert l’éditeur de texte, vous pouvez écrire les commandes souhaitées dans le script. Par exemple:
#!/bin/bash echo "Hello, World!"
La ligne
# !/bin/bash
en haut du fichier indique au système d’exploitation que ce script doit être exécuté à l’aide du shell Bash. La commandeecho
imprime le texte à l’écran.Rendre le script exécutable :
Avant de pouvoir exécuter le script, vous devez le rendre exécutable. Cela garantit que le système le reconnaît comme un programme qui peut être exécuté. Utilisez la commandechmod
pour modifier les permissions du script.chmod +x myscript.sh
Exécutez le script shell :
Après avoir rendu le script exécutable, vous pouvez maintenant l’exécuter. Pour ce faire, naviguez jusqu’au répertoire où se trouve votre script et exécutez-le en tapant :./myscript.sh
Exécuter un script à partir d’un autre script dans bash :
Parfois, vous pouvez avoir besoin d’exécuter un script à partir d’un autre script dans Bash. Pour ce faire, vous pouvez fournir le chemin d’accès complet ou utiliser un chemin d’accès relatif, en fonction de vos besoins.Utilisation d’un chemin d’accès relatif : un chemin d’accès relatif fait référence à l’emplacement du script par rapport au répertoire de travail actuel (le répertoire à partir duquel vous exécutez le script). Voici comment vous pouvez exécuter un autre script à l’aide d’un chemin d’accès relatif :
#!/bin/bash ./myscript.sh echo "Main script executed!"
Dans cet exemple,
./myscript.sh
fait référence à un script qui se trouve dans le même répertoire que le script principal. Le./
désigne le répertoire courant, de sorte que Bash saitqu’il doit chercher myscript.sh
dans le même dossier.-
Utilisation d’un chemin d’accès complet : un chemin d’accès complet ou absolu spécifie l’emplacement exact du script, à partir du répertoire racine. Cette méthode est utile si le script que vous souhaitez exécuter se trouve dans un autre répertoire ou si vous souhaitez vous assurer que le script est exécuté quel que soit votre répertoire actuel.
#!/bin/bash /home/user/scripts/myscript.sh echo "Main script executed!"
- Chemin relatif : Flexible, mais dépendant de l’endroit à partir duquel le script principal est exécuté. Cela ne fonctionne que si les deux scripts se trouvent dans le même répertoire ou à un emplacement relatif prévisible.
- Chemin d’accès complet : garantit que le bon script est toujours exécuté, quel que soit l’endroit d’où le script principal est exécuté. Il est idéal lorsque les scripts sont stockés dans des répertoires différents ou lorsque vous souhaitez plus de contrôle sur l’exécution.
- Exécuter un script à l’aide de la commande bash :
Vous pouvez également exécuter un script shell à l’aide de la commandebash
sans le rendre exécutable. Ceci est utile si vous ne souhaitez pas modifier les autorisations de fichier.bash myscript.sh
Cette commande exécute le script directement à l’aide de l’interpréteur Bash, sans avoir besoin d’autorisations exécutables.
Une fois que vous avez terminé d’écrire le script, enregistrez et quittez l’éditeur de texte. Si vous utilisez nano, appuyez sur CTRL+X
, puis sur Y
pour confirmer l’enregistrement, puis sur Entrée
pour quitter.
Cette commande accorde des autorisations d’exécution au script, ce qui lui permet d’être exécuté par le système.
Le ./
indique au terminal de chercher le script dans le répertoire courant. Le script s’exécutera et vous devriez voir la sortie Hello, World !
sur votre terminal.
Dans ce cas, /home/user/scripts/myscript.sh
fait référence à l’emplacement exact du script. Quel que soit l’endroit où se trouve le script principal, il exécutera toujours les another_script.sh
situés dans /home/user/scripts/
.
Différence entre le chemin relatif et le chemin complet :
En choisissant la méthode appropriée, vous pouvez facilement gérer l’exécution de scripts dans différents répertoires ou environnements.
Conclusion
En suivant ces étapes, vous pouvez facilement créer, exécuter et gérer des scripts shell dans Bash. Que vous automatisiez des tâches, gériez des fichiers ou exécutiez des scripts à partir d’autres scripts, la maîtrise de cette compétence améliorera considérablement votre productivité et votre efficacité sur un système Linux. Comprendre comment exécuter un script shell dans Bash ouvre des possibilités infinies pour l’automatisation et la gestion du système.
FAQ:
1. Comment rendre un script shell exécutable ?
Pour rendre un script shell exécutable, utilisez la commande suivante :
chmod +x script_name.sh
Cela accorde des autorisations d’exécution, permettant au script de s’exécuter.
2. Qu’est-ce que l’erreur courante : « Autorisation refusée » lors de l’exécution d’un script ?
Cette erreur se produit lorsque le script ne dispose pas des autorisations d’exécutable. Utilisez la commande chmod +x
pour rendre le script exécutable :
chmod +x script_name.sh
3. Comment exécuter un script dans Bash sans le rendre exécutable ?
Vous pouvez exécuter le script directement à l’aide de la commande Bash :
bash script_name.sh
4. Que signifie « Aucun fichier ou répertoire » ?
Cette erreur signifie généralement que le script est introuvable dans le chemin d’accès spécifié. Assurez-vous que vous êtes dans le bon répertoire ou utilisez le chemin d’accès complet au script :
./script_name.sh
pour les chemins relatifs, ou utilisez le chemin complet comme :
/home/user/script_name.sh
5. Comment puis-je exécuter un script à partir d’un autre script dans Bash ?
Vous pouvez exécuter un autre script en l’appelant dans le script principal à l’aide d’un chemin d’accès relatif ou complet :
./another_script.sh
(parent) ou
/home/user/another_script.sh
(chemin d’accès complet).
6. Que signifie « commande introuvable » lors de l’exécution d’un script ?
Cette erreur indique que Bash ne peut pas localiser le script dans votre répertoire actuel. Assurez-vous d’inclure ./
avant le nom du script si celui-ci se trouve dans votre répertoire actuel :
./script_name.sh
7. Puis-je exécuter un script en tant qu’utilisateur root ?
Oui, vous pouvez exécuter un script avec les privilèges root en utilisant sudo
:
sudo ./script_name.sh
Ceci est nécessaire si le script doit modifier des fichiers système ou effectuer des tâches administratives.
8. Comment déboguer un script Bash ?
Pour déboguer un script Bash, vous pouvez l’exécuter avec l’option -x
:
bash -x script_name.sh
Cela imprimera chaque commande avant qu’elle ne soit exécutée, ce qui vous aidera à suivre les erreurs ou les comportements inattendus.