Utiliser variables importées

Bonjour, je vais essayer d'être le plus clair possible pour mon problème ^^

fichier principal : lol.sh
fichier avec variables : var.sh

contenu de lol.sh :

#!/bin/sh
.var.sh

echo "$toto"

contenu de var.sh :

#!/bin/sh

toto="test"

En gros lorsque j'exécute ./lol.sh , je voudrais qu'il affiche la valeur de $toto.
A savoir que les 2 fichiers sont exécutables ( chmod u+x )

Retourne : bin/sh: bad interpreter
XD

Merci

4 réponses

  1. hello
    changer cette ligne, avec un espace après le premier point
    . ./var.sh 
    0
    1. Pour sourcer un fichier il faut un espace après le point:
      . var.sh 
      0
      1. Modérateur
        Ou taper mettre source à la place du point ;-))

         source var.sh
        0
      2. historiquement, sh ne connait pas source, csh, ksh, bash oui
        $ ./lol.sh
        ./lol.sh: 2: source: not found
        
        $ cat lol.sh
        #!/bin/sh
        source ./var.sh
        
        echo "$toto"
        $ 
        
        0
      3. Modérateur
        Merci, je ne savais pas ;-\
        0
      4. Il fut un temps où il n'y avait que le Bourne shell ...
        0
      5. Modérateur
        Je n'ai malheureusement pas connu ce temps là ;-(
        0
    2. J'ai tapé vos 3 commandes et ça me renvoie toujours :

      -bash: ./lol.sh: bin/sh: bad interpreter: No such file or directory
      0
      1. que répond ls -l /bin/sh
        0
        1. répond : lrwxrwxrwx 1 root root 4 2010-01-20 14:05 /bin/sh -> bash
          0
        2. Modérateur
          Et "ls -l /bin/bash" ?
          0
        3. dans ce cas source ou . fonctionnent.
          affiche cat -A lol.sh
          $ ./lol.sh
          bash: ./lol.sh: bin/sh: bad interpreter: No such file or directory
          $ 
          $ cat lol.sh
          #!bin/sh
          . ./var.sh
          
          echo "$toto"
          
          0
        4. ls -l bin/bash : -rwxr-xr-x 1 root root 702160 2008-05-12 20:33 /bin/bash

          cat -A lol.sh :

          #!bin/sh$
          . var.sh$
          $
          echo "$toto"$
          $
          0
        5. il manque un / devant bin
          #!/bin/sh
          0