据我所知,我们可以使用$?
来获取我们执行的命令的结果,如果程序员保持约定,它将在错误时返回非零结果,并在成功时返回0结果。
但是当我们运行perl脚本时呢?
我是perl中的新手,但我认为perl脚本如果是模块的一部分则返回1
,否则它们不会返回任何内容。
那么我怎么知道我运行的perl脚本发生了什么?
答案 0 :(得分:7)
从shell运行时,Perl脚本的行为相同。
test.pl
:
#!/usr/bin/env perl
exit(0); # or just exit
运行:
./test.pl && echo "OK" || echo $?
OK
具有
#!/usr/bin/env perl
exit(123);
运行:
./test.pl && echo "OK" || echo $?
123
具有
#!/usr/bin/env perl
die;
运行:
./test.pl && echo "OK" || echo $?
Died at ./test.pl line 2.
255
所以:
true
。false
,$?
将为您提供退出值。die
从perl脚本退出,false
将在shell中,$?
将为255(在我的情况下 - 我检查过它)。