setenv unix
От: Черепнин Сергей Украина  
Дата: 17.02.06 18:10
Оценка:
Почему из командного файла setenv не работает:

13:06> test.sh
test.sh: setenv: not found



вот текст:


setenv my_test 123
Re: setenv unix
От: megawatt Россия http://ruby.inuse.ru
Дата: 17.02.06 18:43
Оценка:
Здравствуйте, Черепнин Сергей, Вы писали:

setenv это tcsh

в sh, bash надо:

my_test=123

если хочешь что бы потомки ее унаследовали то

sh:
my_test=123
export my_test

bash:
export my_test=123
Re: setenv unix
От: hsc Украина  
Дата: 18.02.06 22:08
Оценка:
Опытным путем утановлено что надо запускать скрипт вот так:
. ./test.sh
Re[2]: setenv unix
От: Kemm  
Дата: 18.02.06 22:47
Оценка: 2 (1)
Здравствуйте, hsc, Вы писали:

hsc>Опытным путем утановлено что надо запускать скрипт вот так:

hsc>. ./test.sh

Это к вопросу абсолютно не относится. На сам вопрос уже ответили, а то, что ты предложил, в sh (и производных типа bash/zsh) является сокращением 'source ./test.sh'. Это (что в sh, что в csh) выполняет команды из файла в текущем процессе, не порождая нового шелла. Т.е., например, если скрипт test.sh имеет вид:

some_var=some_value

, то после выполнения как ./test.sh будет запущен новый экземпляр шелла, и значение some_var в родительском шелле не поменяется, а если выполнить source test.sh — то, соотв., some_var примет значение some_value.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.