我编写了一个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脚本的正确方法是什么?
答案 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