Здравствуйте, 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.
Почему из командного файла setenv не работает:
13:06> test.sh
test.sh: setenv: not found
вот текст:
setenv my_test 123