忽略setenv命令中的错误,并继续执行csh脚本

问题描述 投票:0回答:1

我有一个包含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,但是如果变量$ ...

shell unix error-handling tcsh setenv
1个回答
0
投票

如果setenv的值包含变量,我为此找到的最接近的解决方法是如下生成setenvs。

© www.soinside.com 2019 - 2024. All rights reserved.