#linux #tcsh
Вопрос:
#test.tcsh
#!bin/tcsh
setenv A a;
if($argv[1]=="B") then
setenv B b;
endif
когда я выступаю
tcsh test.tcsh B
echo $B
оказывается, что
undined parameter
можете ли вы сказать мне, почему???
Комментарии:
1. Ребенок не может изменить окружение родителя.
2. Это не сработает ни с
tcsh test.tcsh A
тем, ни с другим. Как и выше, дочерние процессы не могут изменять среду родительских процессов. В этом случае ваш терминальный сеанс является родительским, иtcsh test.tcsh
он выполняется как дочерний для этого родителя. Когда это будет сделано, от дочернего процесса ничего не останется, если только он не будет записан в файл. (Именно так вам придется изменить родительскую среду). Удачи!3. Используйте
source test.tcsh
для его выполнения в среде исходной оболочки.