Set variable d'environnement

salut
j'ai utilise dans in script la commande:

set PRJHOME=`echo $PWD | cut -d / -f 4-5`
echo $PRJHOME

mais dans le echo je n'obtient aucune valeur,ja sais pas pourquoi?
je veux aussi obtenir le resultat si je tape la commande:
echo $PRJHOME dans le prompt
Aidez moi svp

9 réponses

  1. Modérateur
    C'st bizarre que ça ne marche pas :
    [jp@Mandrake tmpfs]$ echo $PWD
    /home/jp/tmpfs
    
    [jp@Mandrake tmpfs]$ PRJHOME=`echo $PWD | cut -d / -f 2`
    [jp@Mandrake tmpfs]$ echo $PRJHOME
    home
    
    [jp@Mandrake tmpfs]$
    C'est quoi ton shell ?

    Sinon pour définir une variable et la rendre accessible il faut l'exporter :
    export variable=valeur
    ou
    variable=valeur
    export variable
    1
    1. Modérateur
      Salut,

      Essaye tout simplement :
      PRJHOME=`echo $PWD | cut -d / -f 4-5`
      :-))
      0
      1. j'ai essaye mais ca n'as pas marche,

        je veux definir cette variable comment etant une variable d'environnemet qui sera accesssible d'un autre repertoire

        est ce que vous m'avez compris?
        0
        1. lorseque j'essaye avec des commandes dans le prompt, ca marche mais dans un fichier que j'execute ca marche pas!!!!!!!!!!!!
          est ce que quelqu'un connait la reponse?
          0
          1. Modérateur
            Bon, je repose la question : quel est ton shell ???
            Affiches-nous ton script aussi par la même occasion, on est pas devin :-))
            0
            1. le code est le suivant

              #! /bin/sh
              if [ -f /home/prj/itsec/.prjrc ]; then
              echo "le fichier a ete trouve"
              else
              echo "ERREUR"
              echo "le fichier n a pas ete trouve"
              exit
              fi

              PRJHOME=`echo $PWD | cut -d / -f 4-5`
              echo $PRJHOME

              ca donne rien comme resultat
              0
              1. meme avec set, ca donne rien

                le code est le suivant

                #! /bin/sh
                if [ -f /home/prj/itsec/.prjrc ]; then
                echo "le fichier a ete trouve"
                else
                echo "ERREUR"
                echo "le fichier n a pas ete trouve"
                exit
                fi

                set PRJHOME=`echo $PWD | cut -d / -f 4-5`
                echo $PRJHOME
                0
                1. toujours pas de reponse???!!!!!!!!!
                  je sais pas pk cane marche pas, c bizzare non?
                  0
                  1. Modérateur
                    Salut,

                    Parce que ton script doit d'abord se placer dans un répertoire (il doit définir lui même un répertoire exploitable par la variable "$PWD").
                    Donc rajoute en début :
                    cd /home/prj/itsec/
                    if [ -f .prjrc ]; then...
                    et là il te retournera le chemin ;-))
                    0