Recherche de site Web

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 toute personne travaillant avec des systèmes Linux. Les scripts Shell vous permettent d'automatiser les tâches répétitives, de gérer les configurations système et de créer des flux de travail complexes en quelques lignes de code. Que vous soyez débutant ou utilisateur expérimenté, maîtriser cela vous fera gagner du temps et des efforts. Dans cet article, nous passerons 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 didacticiel, vous apprendrez :

  • Comment créer un script shell dans Bash
  • Comment exécuter un script shell
  • Comment gérer les autorisations pour exécuter un script
  • Comment exécuter un script à partir d'un autre dans Bash

Étapes pour exécuter 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.

  1. Créer 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 réel. Un script shell est essentiellement un fichier texte brut contenant une série de commandes exécutées en séquence. Vous pouvez créer ce fichier à l'aide d'un éditeur de texte tel que nano ou vim.

    $ 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 commande echo imprime le texte à l'écran.

  2. 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 la sauvegarde, et appuyez sur Entrée pour quitter.

  3. 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 pouvant être exécuté. Utilisez la commande chmod pour modifier les autorisations du script.

    $ chmod +x myscript.sh
  4. Cette commande accorde des autorisations d'exécution au script, lui permettant d'être exécuté par le système.

  5. Exécutez le script Shell :
    Après avoir rendu le script exécutable, vous pouvez maintenant l'exécuter. Pour ce faire, accédez au répertoire où se trouve votre script et exécutez-le en tapant :

    $ ./myscript.sh
  6. Le ./ indique au terminal de rechercher le script dans le répertoire courant. Le script s'exécutera et vous devriez voir la sortie Hello, World! sur votre terminal.

  7. Exécuter un script à partir d'un autre script dans Bash :
    Parfois, vous devrez peut-être exécuter un script à partir d’un autre script dans Bash. Cela peut être fait soit en fournissant le chemin complet, soit en utilisant un chemin relatif, selon vos besoins.

    • Utilisation d'un chemin relatif : un chemin 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 exécuter un autre script en utilisant un chemin 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 actuel, donc Bash sait qu'il faut rechercher myscript.sh dans le même dossier.

    • Utilisation d'un chemin complet : un chemin 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 répertoire différent 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!"
    • Dans ce cas, /home/user/scripts/myscript.sh fait référence à l'emplacement exact du script. Quel que soit l'emplacement du script principal, il exécutera toujours le another_script.sh situé dans /home/user/scripts/.

    Différence entre chemin relatif et chemin complet :

    • 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 dans un emplacement relatif prévisible.
    • Chemin complet : garantit que le script correct est toujours exécuté, quel que soit l'endroit à partir duquel le script principal est exécuté. C'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.

    En choisissant la méthode appropriée, vous pouvez facilement gérer l'exécution des scripts dans différents répertoires ou environnements.

  8. Exécuter un script à l'aide de la commande Bash :
    Vous pouvez également exécuter un script shell à l'aide de la commande bash sans le rendre exécutable. Ceci est utile si vous ne souhaitez pas modifier les autorisations de fichiers.

    $ bash myscript.sh

    Cette commande exécute le script directement à l'aide de l'interpréteur Bash, évitant ainsi le besoin d'autorisations exécutables.

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 d'automatisation et de 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. Quelle est l'erreur courante : « Autorisation refusée » lors de l'exécution d'un script ?

Cette erreur se produit lorsque le script ne dispose pas d'autorisations exécutables. 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 de ce type » ?

Cette erreur signifie généralement que le script est introuvable dans le chemin spécifié. Assurez-vous que vous êtes dans le bon répertoire ou utilisez le chemin complet du 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 en utilisant un chemin relatif ou complet :

./another_script.sh

(parent) ou

/home/user/another_script.sh

(chemin complet).

6. Que signifie « commande introuvable » lors de l'exécution d'un script ?

Cette erreur indique que Bash ne parvient pas à localiser le script dans votre répertoire actuel. Assurez-vous d'inclure ./ avant le nom du script si le script 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 requis 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 son exécution, vous aidant ainsi à retracer les erreurs ou les comportements inattendus.

Articles connexes: