据我所知,我们可以$?
用来获取我们执行的命令的结果,如果程序员保持约定,它将在错误时返回非零结果,在成功时返回 0 结果。
但是当我们运行 perl 脚本时呢?
我是 perl 的新手,但我认为 perl 脚本1
如果它们是模块的一部分就会返回,否则它们不会返回任何东西。
那么我怎么知道我运行的 perl 脚本发生了什么?
问问题
2751 次
1 回答
7
Perl 脚本从 shell 运行时的行为相同。有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
所以:
- 以 0(或无)退出 perl 脚本将
true
在 shell 中。 - 从 perl 脚本中以 0 以外的(字节)值退出将
false
在 shell 中并$?
为您提供退出值。 - 从 perl 脚本中退出
die
将false
在 shell 中,$?
将是 255(在我的情况下 - 我检查了它)。
于 2013-07-16T21:12:36.380 回答