Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Pour en savoir un peu plus sur l'équipe du forum.

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#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)


Je teste des trucs sur ubuntu et surtout debian

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
Dell Vostro Ubuntu 14.04 64 bits (je ne suis pas passé à la 16.04  ; problème avec crypttab, et performance)
J'ai abandonné azerty au profit de bépo, google au profit de Lilo et mes adresses électronique au profit d'une messagerie réellement sécurisée, Protonmail.

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


Je teste des trucs sur ubuntu et surtout debian

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
wink

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)


Je teste des trucs sur ubuntu et surtout debian

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
Dell Vostro Ubuntu 14.04 64 bits (je ne suis pas passé à la 16.04  ; problème avec crypttab, et performance)
J'ai abandonné azerty au profit de bépo, google au profit de Lilo et mes adresses électronique au profit d'une messagerie réellement sécurisée, Protonmail.

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


Je teste des trucs sur ubuntu et surtout debian

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

thegamer94400 a écrit :

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


Je teste des trucs sur ubuntu et surtout debian

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