web-dev-qa-db-fra.com

Comment exécuter un script bash dans Terminal?

J'ai un script bash comme:

#!/bin/bash

echo Hello world!

Comment puis-je l'exécuter dans un terminal?

68
Ballon

$Prompt: /path/to/script et appuyez sur Entrée. Notez que vous devez vous assurer que le script dispose des autorisations d'exécution.

35
prodigitalson

Encore une autre façon de l’exécuter (cette fois sans définir d’autorisations d’exécution):

bash /path/to/scriptname
78
Dennis Williamson

Vous pourriez faire:
sh scriptname.sh

29
xCra2yx

allez dans le répertoire contenant le script ou placez-le dans un dossier bin situé dans votre $ PATH

puis tapez

./scriptname.sh

si dans le même répertoire ou

scriptname.sh

si c'est dans le dossier bin.

21
John Boker

Tout d'abord, vous devez le rendre exécutable avec: chmod +x name_of_your_file_script

Après l'avoir rendu exécutable, vous pouvez l'exécuter en utilisant ./same_name_of_your_file_script

8
Donald Shahini

Changez votre répertoire en où le script est situé en utilisant cd command

Puis tapez

bash program-name.sh
7
gaurav07

_ {C'est un vieux fil, mais je suis tombé dessus et je suis étonné que personne n'ait encore fourni de réponse complète. Alors allez-y ...

Le didacticiel d’exécution d’un script de ligne de commande!

Q: Comment puis-je l'exécuter dans un terminal?

Confusions et Conflicts:

  • Vous avez not besoin d'une 'extension' (comme .sh ou .py ou quoi que ce soit d'autre), mais cela aide à garder une trace de tout. Ça ne fera pas mal. Si le nom du script contient une extension, vous devez cependant l'utiliser.
  • Vous faites not devez être dans un certain répertoire pour quelque raison que ce soit.
  • Vous devez not devez saisir le nom du programme qui exécute le fichier (BASH ou Python ou autre), sauf si vous le souhaitez. Ça ne fera pas mal.
  • Vous faites not need Sudo pour faire cela. Cette commande est réservée aux commandes en cours d'exécution en tant qu'autre utilisateur ou en tant qu'utilisateur "root" (administrateur). Great post ici .

(Une personne qui apprend à exécuter des scripts ne devrait pas utiliser cette commande, sauf en cas de réel besoin, comme l'installation d'un nouveau programme. Un bon endroit pour mettre vos scripts est dans votre dossier ~/bin. Vous pouvez y arriver en tapant cd ~/bin ou cd $HOME/bin à partir de l'invite du terminal, vous aurez toutes les autorisations nécessaires dans ce dossier.)} _

Pour "exécuter ce script" à partir du terminal sur un système de type Unix/Linux, vous devez faire trois choses:

  1. Indique au système l'emplacement du script. (choisissez-en un)

    • Tapez le chemin d'accès complet avec le nom du script (par exemple, /path/to/script.sh). Vous pouvez vérifier le chemin complet en tapant pwd ou echo $PWD dans le terminal.
    • Exécutez à partir du même répertoire et utilisez ./ pour le chemin (par exemple ./script.sh). Facile.
    • Placez le script dans un répertoire du système PATH et saisissez simplement le nom (par exemple, script.sh). Vous pouvez vérifier le système PATH en tapant echo $PATH ou echo -e ${PATH//:/\\n} si vous souhaitez une liste plus claire.
  2. Indique au système que le script est autorisé à s'exécuter. (choisissez-en un)

    • Définissez le "bit d’exécution" en saisissant chmod +x /path/to/script.sh dans le terminal.
    • Vous pouvez également utiliser chmod 755 /path/to/script.sh si vous préférez les chiffres. Il y a une bonne discussion avec un graphique cool ici .
  3. Indique le type de script au système. (choisissez-en un)

    • Tapez le nom du programme avant le script. (par exemple, BASH /path/to/script.sh ou PHP /path/to/script.php) Si le script a une extension, telle que .php ou .py, il fait partie du nom du script et vous devez l'inclure.
    • Utilisez un Shebang, que je vois que vous avez (#!/bin/bash) dans votre exemple. Si vous avez cela comme première ligne de votre script, le système utilisera ce programme pour exécuter le script. Pas besoin de dactylographier des programmes ou d'utiliser des extensions.
    • Utilisez un "portable" Shebang. Vous pouvez également demander au système de choisir la version du programme figurant en premier dans PATH en utilisant #!/usr/bin/env suivi du nom du programme (par exemple, #!/usr/bin/env bash ou #!/usr/bin/env python3). Il y a des pour et des contre comme discuté en détail ici .
2
Skeptycal

Si vous vous trouvez dans un répertoire ou un dossier dans lequel le fichier de script est disponible, modifiez simplement l'autorisation de fichier en mode exécutable à l'aide de "chmod + x votre_nom de fichier". Après cela, vous exécuterez le script à l’aide de la commande suivante: ____ "$ Sudo ./votre_fichier.sh"au-dessus du". " représente le répertoire en cours . Remarque! Si vous ne vous trouvez pas dans le répertoire dans lequel se trouve le fichier de script bash, modifiez le répertoire dans lequel se trouve le fichier à l'aide de la commande "cd nom_répertoire/écriture du chemin complet". Sinon, votre script ne peut pas être exécuté. 

0
Hassan Shamshir