Файл конфигурации сценария запуска Csh и переменные

Я довольно неопытен со сценариями оболочки (в данном случае csh), но меня попросили отредактировать один. Меня попросили добавить файл конфигурации, чтобы упростить редактирование нескольких конкретных переменных. Я подумал, что это глупо, потому что это скрипт, а чтение в файл и из файла было бы немного глупо, поэтому я подумал, что могу просто сделать другой скрипт, который будет устанавливать переменные.

Родительский скрипт

#!/bin/csh
...
...

./set_vars

echo $aVar

и мой скрипт set_vars выглядит примерно так

#!/bin/csh

setenv aVar "400"
echo $aVar

Но aVar не определен в родительском скрипте.

мой вопрос звучит так: как мне сделать так, чтобы дочерний скрипт устанавливал переменные, которые может использовать родительский скрипт, или есть лучший способ иметь файл конфигурации, в котором кто-то может устанавливать переменные.

Это кажется глупым способом сделать это, но лучший способ, который я могу сказать, не требует каких-либо файловых операций ввода-вывода и по-прежнему имеет краткий файл для редактирования переменных.


person mr odus    schedule 13.09.2010    source источник


Ответы (1)


Вы должны выполнить скрипт "set_vars" в контексте его родителя. В C-shell вы достигаете этого с помощью команды «source»:

#!/bin/csh
...
source set_vars
...
echo $aVar
person jageay    schedule 13.09.2010
comment
Я был абсолютно уверен, что попробовал это, но попробовал еще раз с вашим предложением, и это сработало! Так что большое вам спасибо, и я не знаю, что я делал раньше. Имеет ли смысл просто устанавливать такие переменные вместо использования текстового файла конфигурации? - person mr odus; 13.09.2010