Страница 1 из 1

Не магу зразумець працу export у bash-скрыпце

Добавлено: 14 июл 2006, 18:35
Victor Gr.
Хутчэй за ўсё гэтую тэму трэба памясціць у "пытанні для чайнікаў", але праграмавання яно таксама кранаецца.

Нешта не тое, не працуе ў мяне.

Калі я пішу ў кансолі:

Код: Выделить всё

$ A='111'; export A;
А потым праглядаю export, то бачу, як такая пераменная з'явілася ў асяроддзі:

Код: Выделить всё

victor@vortex:~/Desktop$ export
declare -x A="111"
Але, калі я раблю тыя ж самые дзеянні з bash-скрыпта:

test.sh:

Код: Выделить всё

#!/bin/bash

B='111';
export B;
То пераменнай B у асяроддзі не з'яўляецца. Чаму??

Добавлено: 14 июл 2006, 20:42
soko1
переменная глобальна в пределах одного сеанса.

Добавлено: 14 июл 2006, 21:18
Victor Gr.
sokol, не зразумеў. Ёсць жа нейкая магчымасць змяняць знешнія пераменныя.

Добавлено: 14 июл 2006, 23:51
kae
Victor Gr., переменная B не сохраняется потому, что test.sh испполняется другим процессом bash'а и "забывается" по его завершению.

Добавлено: 15 июл 2006, 00:47
Llama
Victor Gr. писал(а):sokol, не зразумеў. Ёсць жа нейкая магчымасць змяняць знешнія пераменныя.
Няма AFAIK. Пераменныя асяроддзя вызначаюцца у бацькоўскім працэсе і замяняюцца ў самім працэсе. Дзіцячы працэс іх змяніць ня можа.

Добавлено: 15 июл 2006, 09:12
Hermit
Можно выполнить скрипт в текущем шеле, т.о. скрипт будет изменять нужные переменные.

Смотреть на тему built-in комманды "source" или "."