我无法设置.csh
使用另一个.tcsh
在其中获取此文件的环境变量:
- 这不会设置环境变量:
$PERC_PATH/bin/runperc.csh ...<some arguments>
- 而这确实设置了环境变量:
source $PERC_PATH/bin/runperc.csh ..<some arguments>
两者都是可执行的,shebangs 是/usr/bin/csh
,并且其中的runperc.csh
来源perc_setup.csh
:
source $PERC_PATH/perc_setup.csh
perc_setup.csh
包含setenv
和其他一些命令:setenv MGC_RVEDB_DIR {$PERC_PATH}/setup:{$HOME}
如何在终端中设置环境变量而无需显式source
脚本路径?
环境变量永远不能从外部可执行文件“向上”传播到 shell。如果它们需要由 csh 脚本设置,那么您必须使用
source
该脚本 - 如果需要,将“源”隐藏在别名后面。有一些替代方案——例如让脚本输出环境变量到标准输出,由父级评估——但它们会更加冗长,并且仍然需要您直接在父级shell中运行代码。