私の知る限り、$?実行したコマンドの結果を取得するために使用できます。プログラマーが規則を守っていれば、エラーの場合はゼロ以外の結果が返され、成功の場合は 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   に答える