使用Perl将值返回到csh脚本

时间:2013-06-13 23:15:09

标签: perl return csh

我编写了一个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脚本中我说“退出1”或“退出0”,Perl脚本也不会传递正确的值。

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

print "1";
exit 1;

然后我的shell脚本获取值。如果我打印它似乎得到了价值,但我不认为这是强大的,我想以正确的方式做到这一点。我尝试了其他解决方案,但打印似乎是唯一的解决方案。

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

1 个答案:

答案 0 :(得分: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