Thoát trạng thái của lệnh trước lệnh cuối cùng


0

Trên OS X, Linux và các hệ thống khác, bạn có thể sử dụng $?để lấy mã thoát của lệnh cuối cùng. Có cách nào để thoát mã của các lệnh cũ hơn không? Hoặc bằng cách nói "cho tôi mã thoát của nthlệnh trước" hoặc bằng cách nói "cho tôi mã thoát của quy trình với PID p"?


bạn có thể tự thêm các mã thoát vào một tệp sau khi ban hành lệnh

Câu trả lời:


1

Mã thoát của lệnh chỉ được xuất một lần và nếu không được xử lý thêm, điều duy nhất lưu mã thoát đó là shell. bashchỉ lưu mã thoát cho lệnh cuối cùng.

Để tra cứu mã thoát của các lệnh cũ hơn, bạn cần lưu chúng vào một biến, như vậy:

$ echo "This command will succeed"
$ exitcode=$?

...

$ echo $exitcode
0

Cảm ơn câu trả lời. Bạn có thể chỉ cho tôi một số tài liệu xác minh bash chỉ lưu mã thoát cuối cùng không?
Amit Kumar Gupta

Tôi không thể tìm thấy bất cứ điều gì nói rõ ràng như vậy, nhưng bản chất thoát trạng thái bị mất trừ khi được lưu rõ ràng. Trong phần man bash"Thông số đặc biệt", chúng tôi tìm định nghĩa cho $? Expands to the exit status of the most recently executed foreground pipeline. Không có đề cập đến việc tìm kiếm các trạng thái thoát cũ trong hướng dẫn bash.
Arkenklo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.