Tôi đang sử dụng Perl 5.10.1 trên Ubuntu 11.04. Tôi muốn Perl thực thi một kịch bản lệnh shell và thoát với cùng một mã mà shell script thoát ra. Nhưng điều này không làm việc cho tôi ...Nhận Perl để trả lại mã thoát chính xác
system($runCmd) or die("Failed to run \"$runCmd\": $!");
Tôi đã xác nhận rằng chạy "$ runCmd" của chính nó trả về một mã lối ra của 255, nhưng mệnh đề "chết" là không nhận được viện dẫn. Làm cách nào để thoát với mã chính xác hoặc ít nhất là không thành công cho các mã không thành công?
Một yêu cầu nhỏ khác là tôi muốn đầu ra từ $ runCmd được in ra màn hình.
Bạn cần: 'exit ($ exit_code >> 8)'. – ErikR
Tại sao điều đó lại chính xác? –
Giá trị trả về từ 'system()' là một số nguyên mã hóa giá trị thoát của tiến trình con cộng với cờ cho biết quá trình con đã thoát (kết thúc bình thường, bị giết bởi tín hiệu, v.v.) Giá trị được chuyển đến 'thoát () 'chỉ là giá trị thoát. – ErikR