如何检查在csh中的错误代码的状态?

这不是Perl的问题,这是一个csh的问题。

Linux RHEL 5.5.56上的Perl 5.8.8。

我有一个使用'exit 3'的testingPerl程序 设置退出状态。 Perl程序是从我称之为“test”的csh脚本运行的。

Perl程序:

#/usr/bin/perl # July 11, 2014 # Test exit code with csh $status variable my($i); $i=3; print "$0 Exit with error code $i\n"; exit $i; 

'testing'调用Perl程序的csh脚本:

 #/bin/csh # July 10, 2014, perl tstatus.pl echo "Status=$status" if ($status > 0) then echo "ERROR in status: $status" endif 

即使'echo'Status = $ status'表示状态为3,状态:$ status中的'echo'ERROR行也不会执行。

我如何让我的csh检查$状态的值并采取行动? $状态似乎是一个系统variables。

我也尝试过“if($ stats)then”,但是这也行不通。 在csh脚本中没有报告错误。

谢谢。

PS我不做在csh复杂的东西,所以我还没有准备去bash呢。 我已经阅读了“为什么不csh”文件。 谢谢。

echo命令成功,将$status重置$status 0.因此if永远不会看到非零$status

因此,解决方案是消除echo命令或在perl命令之后立即保存$status的值。

我最近自己遇到了类似的问题 。