我有一个包含setenv命令集的文件(从另一个脚本生成)。
a.csh
setenv XYZ "${ABC} ab"
setenv PQR "test"
然后我在Linux终端中运行source a.csh
但是如果未设置变量$ ABC,则源错误将使用未定义的变量ABC输出,并退出而不在a.csh中运行下一组命令(如setenv PQR "test"
)。
我希望在setenv XYZ "${ABC} ab"
之后继续执行那些命令集。
我尝试为setenv命令添加错误重定向,但是没有用
setenv XYZ "${ABC} ab" 2 > /dev/null
我发现可以使用]捕获源命令的错误>
source a.csh & echo $?
但是这会忽略该文件中紧随该错误的命令,因为它在遇到错误时会退出该命令。
这是我的csh文件外观的一个小示例。但它可能包含一整套setenvs。
检查$ ABC是否存在然后运行setenv是不可行的。
我有一个包含setenv命令集的文件(从另一个脚本生成)。 a.csh setenv XYZ“ $ {ABC} ab” setenv PQR“ test”然后我在Linux终端中运行源a.csh,但是如果变量$ ...
如果setenv的值包含变量,我为此找到的最接近的解决方法是如下生成setenvs。