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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

    Essaye tout simplement :
    PRJHOME=`echo $PWD | cut -d / -f 4-5`
    :-))
    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?
      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. 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?
          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 :-))
            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
              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
                1. toujours pas de reponse???!!!!!!!!!
                  je sais pas pk cane marche pas, c bizzare non?
                  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 ;-))