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