Comande script et PATH

Résolu
Night91 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
Night91 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je débute en scripts sous linux, j'ai un soucis pour exécuter un script en donnant son nom (sans préciser le chemin ou sans taper "./" devant le nom du script)

Voici ce que je fais dans la console :

kevin@kevin:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
kevin@kevin:~$ export PATH=$PATH:/home/kevin/scripts
kevin@kevin:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/kevin/scripts                                                                                       
kevin@kevin:~$ cd /home/kevin/scripts
kevin@kevin:~/scripts$ ls -l
total 8                     
-rwxr--r-- 1 kevin kevin 36 2010-04-11 22:50 test
-rwxr--r-- 1 kevin kevin 34 2010-04-11 22:50 test~
kevin@kevin:~/scripts$ chmod u+x test
kevin@kevin:~/scripts$ ls -l
total 8
-rwxr--r-- 1 kevin kevin 36 2010-04-11 22:50 test
-rwxr--r-- 1 kevin kevin 34 2010-04-11 22:50 test~
kevin@kevin:~/scripts$ ./test
Test
kevin@kevin:~/scripts$ test
kevin@kevin:~/scripts$ cat test
#! /bin/bash
echo "Test"
#kevin@kevin:~/scripts$
kevin@kevin:~/scripts$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/kevin/scripts
kevin@kevin:~/scripts$ pwd
/home/kevin/scripts
kevin@kevin:~/scripts$ test
#kevin@kevin:~/scripts$


Voilà mon script qui affiche "Test" ne fonctionne que si je tape le chemin ou le "./" quand je suis dans le répertoire du script. Pourtant la variable PATh contient le chemin du répertoire contenant le script.
Ai je fais une erreur quelque part ? La synthaxe est bonne pourtant (enfin je crois)
Ai je oublié une manipulation ?
Quels sont les conditions pour que PATH fonctionne correctement?


A voir également:

5 réponses

debianhunter Messages postés 119 Date d'inscription   Statut Membre Dernière intervention   24
 
Bonjour,

test est deja dans /usr/bin/test. Renomme ton fichier et ca devrait marcher.

Cordialement,
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Je n'ai pas Linux sous la main ;-)
Affiche le résultat de
whereis test


Sous debian la commande test fait partie de paquet coreutils et il se trouve dans /usr/bin

Dans ton PATH /usr/bin est avant le répertoire /home/kevin/scripts , donc c'est celui de /usr/bin qui sera exécuter.

Tu peux essayer de mettre ton script dans /usr/local/bin pour voir.

0
Night91 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Oui c'était ca ! Merci beaucoup, c'est vrai qu'il faut faire attention à la manière dont on nomme les fichiers... en tous cas encore merci pour ta réponse rapide et efficace ^^
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

Oups, j'ai oublié la commande interne bash ;-)

Mais cette fois ça marche avec l'histoire de nom, toutefois il faut tenir compte d'ordre de recherche dans PATH.
On peut avoir des applications avec le même nom (même si ce n'est pas judicieux) mais en ce cas il faut utiliser le chemin complet pour être sur d'exécuter la bonne commande.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Night91 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Oké, merci pour l'info, je comprends beaucoup mieux. (en effet, j'avais un test dans /usr/bin )
0