Bash/shell : export d'une variable que pour un sous processus

gnugo -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je voudrais savoir s'il existe un moyen simple de définir une variable pour un sous processus particulier, et seulement pour lui

Par exemple :

$ VAR=lalala
$ export_pour_fils VAR=autrechose
$ ./programme &
*** programme démarré en utilisant la variable VAR=autrechose
$ echo $VAR
lala
$

J'espère que vous m'aurez compris, merci d'avance pour votre aide :)

3 réponses

  1. gnugo
     
    PS : l'idée est de faire cela pour donner une variable $LANG différente à un programme, sans modifier $LANG dans le terminal en cours.
    0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    $ VAR=lalala
    $ ( export VAR=autrechose; ./programme ) &
    0
  3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Ça marche aussi avec une fonction et une déclaration locale :

    $ cat foo.sh 
    #!/bin/bash
    echo "LANG = ${LANG}"

    $ ./foo.sh
    LANG = fr_FR.UTF-8

    $ loc (){ local LANG=us_US.UTF-8; ./foo.sh ; }

    $ loc
    LANG = us_US.UTF-8

    $ ./foo.sh
    LANG = fr_FR.UTF-8
    0