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