0

我写了一个 Perl 脚本,它返回 1 或 0 取决于它是否失败/成功。我有一个读取返回值的 .csh shell 脚本。

.csh 命令是这样的:

> setenv CHECKER `perl $BIN_DIR/sgRevisionChecker.pl`
if($CHECKER) then
    do stuff
else
    echo 'Successful Run'
exit
endif

但是,即使在 Perl 脚本中我说“exit 1”或“exit 0”,Perl 脚本也不会传递正确的值。

但是,如果在 Perl 脚本中我这样做:

print "1";
exit 1;

然后我的 shell 脚本得到这个值。如果我打印它似乎会获得价值,但我认为这并不可靠,我想以正确的方式去做。我尝试过其他解决方案,但打印似乎是唯一的解决方案。

将值从 Perl 返回到 .csh 脚本的正确方法是什么?

4

1 回答 1

0
$BIN_DIR/sgRevisionChecker.pl
if($status) then
    # do stuff
else
    echo 'Successful Run'
    exit
endif

我刚试过这个:

$ cat test.sh
#!/bin/bash 

exit 1

$ cat c.sh 
#!/bin/tcsh

./test.sh
if($status) then
    echo 'Fail'
else
    echo 'Successful Run'
endif

$ ./c.sh
Fail

甚至更短:

> perl -e 'exit 1'
> echo $status
1
于 2013-06-13T23:26:35.313 回答