Chemin par défaut
tablier
Membre
Je veux faire exécuter le script ci-dessous par bash:
#!/bin/bash
echo "cd <chemin-absolu>"
cd <chemin-absolu>
echo "hg clone http://hg.tuxfamily.org/mercurialroot/hatari/hatari"
echo "cd hatari"
cd hatari
echo "hg pull http://hg.tuxfamily.org/mercurialroot/hatari/hatari"
echo "update"
hg update
#
Si j'ouvre le terminal et que je fasse:
moi$ /chemin-absolu du script/
Le script s'exécute parfaitement.
Si je prends le texte du script et que sous Applescript je fasse:
set cescript to "le_texte_du_script"
do shell script cescript
j'obtiens trois erreurs qui sont en fait les mêmes: sh: line x: hg: command not found
hg est installé à : /usr/local/bin/hg
Je pense que c'est un problème de path. j'ai re-installé Mercurial, mais rien n'y fait.
Des idées la dessus ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
+1 pour Ali
Autre solution : en début de ton script, tu charges ton .profile qui semble charger le path à un moment donné :
Alligator, j'y ai pensé ce matin en tombant de mon lit ! (la nuit porte conseil)
Et je viens de me rendre compte que je travaillais sous l'éditeur pour les essais, ce qui n'est pas forcément la même chose que de lancer le script compilé.
LeChatNoir, je ne connaissais pas ça !
Bon, quelques essais à faire. Merci à vous deux.
Ce sont tes variable d'environnement qui sont différentes.
Quand tu ouvre un terminal, tu ouvre un interpréteur de commande spécifique (bash par défaut) qui va charger tout un tas de fichier de pref, dont certain qui changent la variable PATH.
Quand tu exécute un script depuis un app Cocoa, les variables d'environnement ne sont pas les mêmes.
Ajoute un echo $PATH dans ton script pour voir la différence.
Deux solution, les chemin absolu comme dit Ali (mais le script n'est plus portable de fait) ou faire en sorte de mettre à jour tes variables d'environnement comme le propose LeChatNoir.
À savoir que des fichiers de MAJ de variable d'environnement il y en a de partout, dont ça peut être tricky de tous les charger.