<Trước | Nội dung | Tiếp theo>
Trạng thái thoát
Các lệnh (bao gồm các tập lệnh và hàm shell mà chúng tôi viết) cấp một giá trị cho hệ thống khi chúng kết thúc, được gọi là trạng thái thoát. Giá trị này, là một số nguyên trong phạm vi từ 0 đến 255, cho biết sự thành công hay thất bại của việc thực thi lệnh. Theo quy ước, giá trị bằng XNUMX cho biết thành công và bất kỳ giá trị nào khác cho biết thất bại. Trình bao cung cấp một tham số mà chúng ta có thể sử dụng để kiểm tra trạng thái thoát. Ở đây chúng tôi thấy nó hoạt động:
[tôi @ linuxbox ~] $ ls -d / usr / bin
/ usr / bin
[tôi @ linuxbox ~] $ tiếng vang $?
0
[tôi @ linuxbox ~] $ ls -d / bin / usr
ls: không thể truy cập / bin / usr: Không có tệp hoặc thư mục nào như vậy [me @ linuxbox ~] $ tiếng vang $?
2
[tôi @ linuxbox ~] $ ls -d / usr / bin
/ usr / bin
[tôi @ linuxbox ~] $ tiếng vang $?
0
[tôi @ linuxbox ~] $ ls -d / bin / usr
ls: không thể truy cập / bin / usr: Không có tệp hoặc thư mục nào như vậy [me @ linuxbox ~] $ tiếng vang $?
2
Trạng thái thoát
Trong ví dụ này, chúng tôi thực thi ls lệnh hai lần. Lần đầu tiên, lệnh giải thích thành công. Nếu chúng ta hiển thị giá trị của tham số $?, chúng tôi thấy rằng nó bằng không. Chúng tôi thực hiện ls ra lệnh lần thứ hai (chỉ định một thư mục không tồn tại), tạo ra lỗi và kiểm tra tham số $? lần nữa. Lần này nó chứa 2, cho biết rằng lệnh đã gặp lỗi. Một số lệnh sử dụng các giá trị trạng thái thoát khác nhau để cung cấp chẩn đoán lỗi, trong khi nhiều lệnh chỉ cần thoát với giá trị là một khi chúng bị lỗi. Các trang dành cho người đàn ông thường bao gồm một phần có tên “Trạng thái thoát”, mô tả những mã nào được sử dụng. Tuy nhiên, con số XNUMX luôn cho thấy sự thành công.
Trình bao cung cấp hai lệnh nội trang cực kỳ đơn giản không làm gì khác ngoại trừ thuật ngữ với trạng thái không hoặc một trạng thái thoát. Các đúng lệnh luôn thực thi thành công hoàn toàn và sai lệnh luôn thực thi không thành công:
[tôi @ linuxbox ~] $ đúng [tôi @ linuxbox ~] $ tiếng vang $? 0
[tôi @ linuxbox ~] $ sai [tôi @ linuxbox ~] $ tiếng vang $? 1
[tôi @ linuxbox ~] $ đúng [tôi @ linuxbox ~] $ tiếng vang $? 0
[tôi @ linuxbox ~] $ sai [tôi @ linuxbox ~] $ tiếng vang $? 1
Chúng ta có thể sử dụng các lệnh này để xem cách if tuyên bố hoạt động. Cái gì if tuyên bố thực sự là đánh giá sự thành công hay thất bại của các lệnh:
[tôi @ linuxbox ~] $ nếu đúng; rồi echo "Đó là sự thật."; fi
Đúng rồi.
[tôi @ linuxbox ~] $ nếu sai; rồi echo "Đó là sự thật."; fi
[tôi @ linuxbox ~] $
[tôi @ linuxbox ~] $ nếu đúng; rồi echo "Đó là sự thật."; fi
Đúng rồi.
[tôi @ linuxbox ~] $ nếu sai; rồi echo "Đó là sự thật."; fi
[tôi @ linuxbox ~] $
Lệnh echo "Đó là sự thật." được thực thi khi lệnh sau if exe- cutes thành công và không được thực thi khi lệnh sau if không thực thi thành công. Nếu một danh sách các lệnh sau if, lệnh cuối cùng trong danh sách được đánh giá:
[me @ linuxbox ~] $ nếu sai; thật; rồi echo "Đó là sự thật."; fi Đó là sự thật.
[me @ linuxbox ~] $ nếu đúng; sai; rồi echo "Đó là sự thật."; fi [me @ linuxbox ~] $
[me @ linuxbox ~] $ nếu sai; thật; rồi echo "Đó là sự thật."; fi Đó là sự thật.
[me @ linuxbox ~] $ nếu đúng; sai; rồi echo "Đó là sự thật."; fi [me @ linuxbox ~] $
<Trước | Nội dung | Tiếp theo>