PATH qui disparait

SPC Messages postés 4 Statut Membre -  
crabs Messages postés 909 Statut Membre -
Bonjour à tous !
J'in un petit pb avec mon PATH (et oui , il est capricieux!).J'ai créé un petit script pour eviter d'avoir a taper ./ devant chaque executable .Je l'ai changé de mode (777) et je l'inclu dans le PATH par PATH=$PATH:adresse-absolu-du-script enn tant que su mais dés que je ferme la konsole sur llaquel je l'ai inclue le PATH se remodifie en suprimant l'adresse ajoutée precedement, du coup : "command not found" !! !
Je ne sais pas quoi fire de plus !!
Quelqun aurait-il une solution ?

3 réponses

  1. crabs Messages postés 909 Statut Membre 507
     
    Salut,
    Au vue des quelques infos que tu donnes, tu sembles être sous Linux.
    Peux-tu être plus précis : système d'exploitation, shell que tu utilises.
    A+, crabs
    0
  2. SPC Messages postés 4 Statut Membre
     
    Merci crabs de repondre encore a mes question et désolé qu'elles soit laconiques .Alors, je suis sous FC4 avec un shell en bash et j'ecrit en C, si besoin est je compile avec gcc , et ... je sais pas quoi dire d'autre !.
    0
  3. crabs Messages postés 909 Statut Membre 507
     
    Salut,
    Pour le PATH, chaque utilisateur à le sien. Donc quand tu modifies le PATH de
    root, tu ne modifies pas le PATH pour les autres utilisateurs. [t'es pas sous
    DOS ou autre OS du même type]
    Pour jouer avec les binaires du dossier courant le plus simple c'est de
    rajouter '.' à la fin de la variable d'environnement PATH de l'utilisateur.

    Le mieux pour t'en sortir, tu crées ou tu modifies le fichier qui se situe dans
    ton HOME et qui se nomme .bash_profile
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    
    BASH_ENV=$HOME/.bashrc
    
    export BASH_ENV PATH
    

    Puis tu crées le fichier .bashrc toujours dans ton dossier HOME :
    # On supprime le '.' si il existe dans le PATH
    PATH=`echo $PATH |\
     awk -F: 'BEGIN{sep="";p=""}\
      {for(i=1;i<=NF;i++) if ($i!="."){p=p sep $i;sep=":"}}\
      END{print p}'`
    # Puis on le rajoute
    PATH=${PATH}:.
    export PATH
    

    L'avantage de la technique c'est qu'au fur et à mesure des changements
    d'environnement et des lancements de scripts il n'y aura qu'un '.' dans le
    PATH. Second avantage on est sur que le . est à la fin du PATH
    Fait cette modification pour tes comptes utilisateurs, mais c'est à éviter pour
    le compte root.

    Tu vérifie que ça fonctionne en relançant une console pour ton utilisateur
    (dont tu as modifié ces fichiers d'environnements).
    Dès que tu n'as plus d'erreur (moi j'en ai pas sous Slackware), tu quittes ton
    environnement graphique et tu te reconnectes.

    Merci crabs de repondre encore a mes question et ...
    Même si il y a un certain temps, je me suis aussi posé ces questions, et
    quelques 'gourou' y ont répondu soit au travers de leur publication soit par
    le biais des forums.

    A+, bon courage, crabs
    0