Если я запускаю программу с su, не будут ли экспортируемые переменные доступны для вызываемого абонента? - PullRequest
0 голосов
/ 27 марта 2012

Если я запустил программу со следующим скриптом

    MYVARIABLE=abc
    echo -n "Starting Callee"
    echo -n " "
    cd $CALEE_HOME
    su -s /bin/bash -c "$CALLEE_HOME/program.sh &" $CALLEE_USER

, будет ли program.sh знать значение MYVARIABLE или мне следует export это?

1 Ответ

1 голос
/ 27 марта 2012

Нет, только экспортированные переменные видны для любого дочернего процесса.

Экспорт преобразует локальную переменную shell в унаследованную переменную environment .

Однако в приведенном вами примере переменная будет расширена вашей текущей оболочкой до вызова su, поэтому у вас не должно возникнуть проблем (если только CALLEE_USER или CALLEE_HOME содержит пробелы, но это отдельная проблема, связанная с цитированием).

...