Réponses:
$prompt: /path/to/scriptet appuyez sur Entrée. Notez que vous devez vous assurer que le script dispose des autorisations d'exécution.
/path/to répertoire, par exemple avec la cd /path/tocommande, vous pouvez entrer ./scriptpour exécuter votre script. N'oubliez pas, dans ce cas, le './' avant 'script'
Encore une autre façon de l'exécuter (cette fois sans définir les autorisations d'exécution):
bash /path/to/scriptname
cd dans le répertoire qui contient le script, ou placez-le dans un dossier bin qui se trouve dans votre $ PATH
puis tapez
./scriptname.sh
si dans le même répertoire ou
scriptname.sh
s'il se trouve dans le dossier bin.
./scriptname.shfonctionne pour moi mais scriptname.shdonne scriptname.sh: command not found. -rwxr-xr-xsont ses autorisations.
cdn'importe où à tous perpétue un autre malentendu courant pour les débutants. À moins que le script n'ait en interne des dépendances qui l'obligent à s'exécuter dans un répertoire particulier (comme, avoir besoin de lire un fichier de données sur lequel le script ne fournit inexplicablement pas d'option vers lequel pointer), vous ne devriez jamais avoir besoin d'aller cdn'importe où pour l'exécuter, et très ne voudra souvent pas.
Vous pourriez faire:
sh scriptname.sh
shs'agit d'un lien symbolique vers bashou si le script n'utilise aucune construction spécifique à Bash. Dans le premier cas, utiliser bashau lieu de shest la seule solution correcte et portable; dans ce dernier cas, ce n'est pas la bonne réponse à cette question particulière, car l'OP a demandé des conseils pour un script Bash spécifiquement. Perpétrer la mauvaise réponse est irresponsable; les utilisateurs qui ne parviennent pas à saisir la différence publient fréquemment ici, et doivent être montrés pourquoi cette réponse «a fonctionné pour moi» n'a pas fonctionné pour eux.
Tout d' abord , vous devez le rendre exécutable en utilisant: chmod +x name_of_your_file_script.
Une fois que vous l'avez rendu exécutable, vous pouvez l'exécuter en utilisant ./same_name_of_your_file_script
Changez votre répertoire vers l' emplacement du script à l'aide de la commande cd
Puis tapez
bash program-name.sh
cdn'importe où; vous pouvez spécifier un nom de chemin arbitrairement complexe comme argument de bash; en effet, tout programme qui prend un argument de nom de fichier fonctionne de cette façon (ou est terriblement, stupéfiant).
C'est un vieux fil de discussion, mais je suis tombé dessus et je suis surpris que personne n'ait encore fourni de réponse complète. Alors voilà ...
Q: Comment exécuter ceci dans le terminal?
Confusions et conflits:
sudode faire tout cela. Cette commande est réservée à l'exécution de commandes en tant qu'autre utilisateur ou utilisateur «root» (administrateur). Super article ici .(Une personne qui apprend juste à exécuter des scripts ne devrait pas utiliser cette commande à moins qu'il y ait un 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 saisie cd ~/binou à cd $HOME/binpartir de l'invite du terminal. Vous disposerez des autorisations complètes sur ce dossier.)
Pour "exécuter ce script" depuis le terminal sur un système de type Unix / Linux, vous devez faire trois choses:
Indiquez au système l'emplacement du script. (choisissez-en un)
/path/to/script.sh). Vous pouvez vérifier le chemin complet en tapant pwdou echo $PWDdans le terminal../pour le chemin (par exemple ./script.sh). Facile.PATHet tapez simplement le nom (par exemple script.sh). Vous pouvez vérifier le système PATHen tapant echo $PATHou echo -e ${PATH//:/\\n}si vous voulez une liste plus nette.Dites au système que le script est autorisé à s'exécuter. (choisissez-en un)
chmod +x /path/to/script.shdans le terminal.chmod 755 /path/to/script.shsi vous préférez les numéros. Il y a une excellente discussion avec un graphique sympa ici .Dites au système le type de script. (choisissez-en un)
BASH /path/to/script.shou PHP /path/to/script.php) Si le script a une extension, telle que .php ou .py, elle fait partie du nom du script et vous devez l'inclure.#!/bin/bash) dans votre exemple. Si vous l'avez comme première ligne de votre script, le système utilisera ce programme pour exécuter le script. Pas besoin de taper des programmes ou d'utiliser des extensions.PATHen utilisant #!/usr/bin/envsuivi du nom du programme (par exemple #!/usr/bin/env bashou #!/usr/bin/env python3). Il y a des avantages et des inconvénients comme discuté en détail ici .script.shet script.phpsont les noms de fichiers littéraux de ces scripts, et que si vous mettez une extension dans le nom de fichier, vous devez l'inclure lorsque vous exécutez le script (et vice versa; si le script ne le fait pas) t avoir une extension, n'en mettez pas). Ceci est différent, par exemple, du DOS où vous pouvez omettre le .batou .exedu nom de fichier, et les fichiers doivent avoir une extension d'un petit ensemble pour être considérés comme exécutables.
Si vous êtes dans un répertoire ou un dossier où le fichier de script est disponible, modifiez simplement l'autorisation du fichier en mode exécutable en faisant
chmod +x your_filename.sh
Après cela, vous exécuterez le script à l'aide de la commande suivante.
$ sudo ./your_filename.sh
Au dessus de "." représentent le répertoire courant. Remarque! Si vous n'êtes pas dans le répertoire où se trouve le fichier de script bash, vous modifiez le répertoire dans lequel se trouve le fichier en utilisant
cd Directory_name/write the complete path
commander. Sinon, votre script ne peut pas s'exécuter.
sudoest faux et potentiellement horriblement faux si vous l'utilisez sur un script non fiable qui abuse des pouvoirs que vous lui avez inutilement donnés.
cdquelque part est difficile à comprendre, mais probablement aussi faux.
chmod +x scriptnameet puis./scriptname.