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

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. Contributeur
    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
    1. Contributeur
      hello
      $ VAR=lalala
      $ ( export VAR=autrechose; ./programme ) &
      1. 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.