2

私の知る限り、$?実行したコマンドの結果を取得するために使用できます。プログラマーが規則を守っていれば、エラーの場合はゼロ以外の結果が返され、成功の場合は 0 の結果が返されます。
しかし、perl スクリプトを実行するときはどうでしょうか?
私はperlが初めてですが、perlスクリプト1がモジュールの一部である場合、それ以外の場合は何も返さないと思います。
では、実行した perl スクリプトに何が起こったのかを知るにはどうすればよいでしょうか?

4

1 に答える 1

7

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

そう:

  • 0 (または何もない) で perl スクリプトを終了するとtrue、シェルになります。
  • 0 以外の (バイト) 値で perl スクリプトを終了するとfalse、シェルになり$?、終了値が表示されます。
  • Perlスクリプトを終了dieするとfalse、シェルに$?なり、255になります(私の場合-チェックしました)。
于 2013-07-16T21:12:36.380 に答える