2012-03-27 2 views
0

При запуске программы с следующим сценариемЕсли я запускаю программу с su, переменные-не экспортируемые переменные будут доступны для вызываемого абонента?

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

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

Экспорт преобразует локальную оболочка переменная в унаследованную окружающая среда переменная.

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