Réponses:
$prompt: /path/to/script
et 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/to
commande, vous pouvez entrer ./script
pour 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.sh
fonctionne pour moi mais scriptname.sh
donne scriptname.sh: command not found
. -rwxr-xr-x
sont ses autorisations.
cd
n'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 cd
n'importe où pour l'exécuter, et très ne voudra souvent pas.
Vous pourriez faire:
sh scriptname.sh
sh
s'agit d'un lien symbolique vers bash
ou si le script n'utilise aucune construction spécifique à Bash. Dans le premier cas, utiliser bash
au lieu de sh
est 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
cd
n'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:
sudo
de 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 ~/bin
ou à cd $HOME/bin
partir 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 pwd
ou echo $PWD
dans le terminal../
pour le chemin (par exemple ./script.sh
). Facile.PATH
et tapez 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 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.sh
dans le terminal.chmod 755 /path/to/script.sh
si 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.sh
ou 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.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 avantages et des inconvénients comme discuté en détail ici .script.sh
et script.php
sont 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 .bat
ou .exe
du 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.
sudo
est 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.
cd
quelque part est difficile à comprendre, mais probablement aussi faux.
chmod +x scriptname
et puis./scriptname
.