#1 Le 06/12/2017, à 09:20
- thegamer94400
[Résolu] PATH impossible de lancer un script comme une commande
J’ai suivi ce tutoriel : https://doc.ubuntu-fr.org/tutoriel/script_shell (Le 1.2 et 1.3)
Mais à chaque fois quand je tape le nom de mon script la console me retourne
commande non trouvée
Ce soir je vous donnerai l’intégralité de mon script et commandes que j’ai pu effectuer
EDIT : finalement la doc est correcte mais il faut appeler le script en mettant l'extension ".sh" derriere
Merci par avance pour vos réponses
Dernière modification par thegamer94400 (Le 07/12/2017, à 07:27)
Passionné d'informatique et de photographie. J'essaie d'utiliser le plus possible linux
Mon site photo : http://alexandrejublotphotographie.website
Hors ligne
#2 Le 06/12/2017, à 09:26
- Arbiel
Re : [Résolu] PATH impossible de lancer un script comme une commande
Bonjour
Il faut que ton script soit enregistré dans un répertoire énuméré dans la variable d'environnement "PATH".
Le plus simple est de définir un répertoire ~/bin, qui sera alors automatiquement inclus dans "PATH" et d'y enregistrer ton script.
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne
#3 Le 06/12/2017, à 09:28
- pingouinux
Re : [Résolu] PATH impossible de lancer un script comme une commande
Bonjour,
Donne le chemin complet de ton script, ainsi que le retour de
echo "$PATH"
Si ton script est dans le répertoire courant, tu peux le lancer ainsi (s'il est exécutable)
./ton_script
ou en donnant le chemin complet.
Dernière modification par pingouinux (Le 06/12/2017, à 09:29)
Hors ligne
#4 Le 06/12/2017, à 09:51
- thegamer94400
Re : [Résolu] PATH impossible de lancer un script comme une commande
echo « $PATH »
Me renvoie bien comme dans le tutoriel (pas accès à mon ordi pour le moment désolé)
Et le lancer comme ceci ( ./monScript ) je peux mais pas en tapant simplement le nom du script comme indiqué à la fin du tutoriel 1.3
Passionné d'informatique et de photographie. J'essaie d'utiliser le plus possible linux
Mon site photo : http://alexandrejublotphotographie.website
Hors ligne
#5 Le 06/12/2017, à 10:23
- kholo
Re : [Résolu] PATH impossible de lancer un script comme une commande
salut,
+1 pour Arbiel
mkdir $HOME/bin
export PATH=$HOME/bin:$PATH
plus besoin de ./ ni de chemin
Hors ligne
#6 Le 06/12/2017, à 14:53
- thegamer94400
Re : [Résolu] PATH impossible de lancer un script comme une commande
Je teste ceci ce soir et je vous tiens au courant demain
Mais ceci signifie que le tutoriel n’est pas à jour car leur méthode ne fonctionne pas
Merci à tous
Dernière modification par thegamer94400 (Le 06/12/2017, à 14:54)
Passionné d'informatique et de photographie. J'essaie d'utiliser le plus possible linux
Mon site photo : http://alexandrejublotphotographie.website
Hors ligne
#7 Le 06/12/2017, à 22:42
- Arbiel
Re : [Résolu] PATH impossible de lancer un script comme une commande
Bonsoir
@thegamer94400
Je viens de faire un tour sur la page https://doc.ubuntu-fr.org/tutoriel/script_shell et ce que j'en ai lu m'a paru correct.
Lorsque tu entres le nom de ton script, n'oublie pas d'indiquer le nom complet, je veux dire "script.sh" si c'est ainsi que se nomme ton fichier, et non uniquement "script".
Arbiel
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne
#8 Le 07/12/2017, à 07:26
- thegamer94400
Re : [Résolu] PATH impossible de lancer un script comme une commande
Effectivement il faut bien rajouter le .sh et ne pas mettre que le nom du script (dommage...)
merci beaucoup Arbiel et les autres
Passionné d'informatique et de photographie. J'essaie d'utiliser le plus possible linux
Mon site photo : http://alexandrejublotphotographie.website
Hors ligne
#9 Le 07/12/2017, à 09:42
- kholo
Re : [Résolu] PATH impossible de lancer un script comme une commande
un test avec notre ami toto :
on va dans le dossier perso
(toto)-(~)
(lng 932)-$ cd
on crée un dossier de test
(toto)-(~)
(lng 932)-$ mkdir bashtest
on entre dans le dossier
(toto)-(~)
(lng 933)-$ cd bashtest/
on crée un fichier bonjourMonde
(toto)-(~/bashtest)
(lng 934)-$ > bonjourMonde
dans l"éditeur nano
(toto)-(~/bashtest)
(lng 935)-$ nano bonjourMonde
on ajoute du texte :
#!/bin/bash
echo "Bonjour Monde"
echo "fin du script"
exit 0
dans nano faire coller, et fermer avec :
ctrl + Maj + v (pour coller)
puis ctrl +x (pour fermer et lancer la procédure de demande de sauvegarde)
puis o (pour oui)
puis entrée (pour confirmer le nom du fichier)
on exécute un fichier texte avec bash : ça marche
(toto)-(~/bashtest)
(lng 936)-$ bash bonjourMonde
Bonjour Monde
fin du script
je rend le fichier exécutable
(toto)-(~/bashtest)
(lng 937)-$ chmod +x bonjourMonde
je l'exécute avec ./ : ça marche
(toto)-(~/bashtest)
(lng 938)-$ ./bonjourMonde
Bonjour Monde
fin du script
je veux lancer mon fichier exécutable : ça marche pas
(toto)-(~/bashtest)
(lng 939)-$ bonjourMonde
bonjourMonde : commande introuvable
je renomme mon fichier avec .sh
(toto)-(~/bashtest)
(lng 940)-$ mv bonjourMonde bonjourMonde.sh
tentative d’exécution : ça marche pas
(toto)-(~/bashtest)
(lng 941)-$ bonjourMonde.sh
bonjourMonde.sh : commande introuvable
je déplace le fichier dans mon dossier bin perso (qui existe déjà : voir mon post précédent)
et je vire le .sh
(toto)-(~/bashtest)
(lng 942)-$ mv bonjourMonde.sh $HOME/bin/bonjourMonde
je suis dans ~/bashtest et je lance mon fichier qui est déplacé : ça marche
(toto)-(~/bashtest)
(lng 943)-$ bonjourMonde
Bonjour Monde
fin du script
on supprime le dossier de test
(toto)-(~)
(lng 932)-$ rm -d bashtest
...
cqfd ?
Hors ligne
#10 Le 07/12/2017, à 10:23
- AGP-Architecture
Re : [Résolu] PATH impossible de lancer un script comme une commande
Effectivement il faut bien rajouter le .sh et ne pas mettre que le nom du script (dommage...)
merci beaucoup Arbiel et les autres
Tu peux essayer sans mettre d'extension à ton fichier de script.
ScriptTest. sh devient alors ScriptTest ce qui devrait te permettre d'appeller ton script (si ton dossier PATH est bien défini par juste le nom et sans .sh puisqu'il n'y a pas d'extension
Hors ligne
#11 Le 08/12/2017, à 07:29
- thegamer94400
Re : [Résolu] PATH impossible de lancer un script comme une commande
j'ai configuré le PATH comme dans le tutoriel mais sans l'extension, le bash me retourne "commande introuvable"
merci à tous encore une fois
Passionné d'informatique et de photographie. J'essaie d'utiliser le plus possible linux
Mon site photo : http://alexandrejublotphotographie.website
Hors ligne
#12 Le 08/12/2017, à 10:49
- kholo
Re : [Résolu] PATH impossible de lancer un script comme une commande
bon, tu ne dois pas t'y prendre comme ça...
indique nous les lignes telles qu'elles ont été tapées et les retours.
on doit avoir
toto@sonhost:~$commande
des retours
...
------------------------------------------------------------------------------
pour savoir où tu en es :
echo $PATH
chaque dossier est séparé par un :
... sur une 14.04, par exemple :
echo $PATH
/usr/games:/home/toto/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin sont standards
/usr/games:/home/toto/bin: :/usr/games:/usr/local/games sont ajoutés
quand on demande une commande, le système cherche dans l'ordre de lecture (gauche à droite)
le premier trouvé est exécuté (idem pour l'auto complétion lors de la saisie)
------------------------------------------------------------------------------
je reprends le premier post en détail :
mkdir $HOME/bin
va créer un dossier bin dans ton dossier personnel...
pour ne pas avoir à taper cette ligne à chaque démarrage,
Ubuntu (c'est pas moi qui décide des choix de Canonical) a une routine qui se lance pour chaque utilisateur.
elle est prévue, il suffit de créer le dossier $HOME/bin.
quand tu crées ce dossier,
pour le prendre en compte immédiatement dans ton PATH,
on l'ajoute à PATH à la main :
export PATH=$HOME/bin:$PATH
l'export permet de prendre en considération cette variable globalement pour le système
sans quoi elle ne serait prise en compte que dans le processus courant
NB : dans un script, on peut ajouter un PATH= sans export pour limiter la porté au script et à ses fils et ainsi pouvoir appeler des scripts externes sans avoir à donner le chemin absolu.
lors des démarrages suivants c'est un bout de code dans .profile
qui ajoute bin, si il est présent, à PATH
rien n’empêche d'ajouter à ce fichier des trucs plus perso...
exemple
mkdir $HOME/mes_scripts_perso
nano $HOME/.profile
on va voir le code qui sert à ajouter bin
on ajoute ensuite un dossier à PATH
...
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# ligne à ajouter pour un autre dossier que bin
PATH="$HOME/mes_scripts_perso:$PATH"
...
Hors ligne