根据先前的错误代码退出 csh 脚本

Exit csh script based on previous error code

我有一个 shell 脚本 运行 一个 python 脚本。如果退出代码非零,我想退出当前的 csh 脚本。以下 csh 脚本中的示例代码似乎无法正常工作。

./pythonfile.py
if $? != 0 then
    echo 'Something went wrong!' $?
    exit 1
endif

大多数 csh 版本实际上是 tcsh。在 tcsh 中, $?$status 都应该有效。查看 Fixes 文件,似乎自 1992 年以来一直如此...

您的代码中的问题是 if 语句将覆盖 $status/$? 变量的值;您需要使用中间变量来存储退出代码。

false
set code = $?
if $code != 0 then
    echo 'Something went wrong! ' $code
    exit 1
endif