Divers scripts

flambySYS Messages postés 66 Statut Membre -  
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   -
Bonjour,
J'ai installer un serveur openvpn, mais une question me taraude
Lorsque j'ai créé les certificat et les clés j'ai du effectuer les commandes suivantes:
 . ./vars
./build-ca
./build-server serveur
...


Mais pourquoi rajouter une point espace ". " devant le vars a quoi sert-il
Je c que le point slash ./ sert a lancé les script mais pour le vard je ne vois pas.
Merci

3 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    L'opérateur "." en shell est équivalent à la directive "source" en bash : elle charge/inclue un script shell passé en paramètre (en l'occurrence ./vars).

    Le "./script" sert à exécuter script si le répertoire courant n'est pas référencé dans la variable d'environnement PATH. Si par exemple . = /home/mando, alors cela revient à lancer /home/mando/script.

    echo $PATH
    0
    1. boly38 Messages postés 267 Date d'inscription   Statut Membre Dernière intervention   80
       
      oops :)
      0
    2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
       
      Belle synchro ;-)
      0
  2. boly38 Messages postés 267 Date d'inscription   Statut Membre Dernière intervention   80
     
    "./monscript" directement crée un nouvel espace/environnement d'exécution propre au script.

    alors que ". ./monscript" utilise l'espace/environnement d'exécution courant pour exécuter le script.
    C'est pour cela que positionner un fichier "profile" par exemple se fait avec "."

    NB: "." correspond à la commande "source"
    0
  3. flambySYS Messages postés 66 Statut Membre
     
    merci pour les reponses sympas j'ai du mal a saisir mais bon je ferai avec .
    0
    1. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
       
      Pour illustrer la différence des espace entre le source d'un script et l'execution de celui ci:
      $ car > var << EOF
      v=toto
      EOF
      $ chmod +x var
      $ ./var
      $ echo $v
      
      $ . ./var
      $ echo $v
      toto
      $

      C'est une des spécificité de la commande source, ça marche aussi avec les fonction, etc.

      A plus
      0