Giá trị trạng thái thoát của lệnh chờ phụ thuộc vào lệnh được chỉ định bởi toán hạng cuối cùng được chỉ định. Khi bất kỳ quá trình nào kết thúc bất thường thì trạng thái thoát sẽ lớn hơn 128 và sẽ khác với các giá trị trạng thái thoát của các lệnh khác. đợi đã lệnh thoát với giá trị 0 khi nó gọi không có toán hạng và tất cả các ID tiến trình được biết bởi trình bao hiện tại đã kết thúc. Nếu lệnh wait phát hiện bất kỳ lỗi nào thì nó sẽ trả về bất kỳ giá trị nào từ 1 đến 126. Nếu id quy trình cuối cùng là không xác định thì lệnh wait sẽ thoát với giá trị 127. Cách bạn có thể sử dụng lệnh wait trong Linux được trình bày trong hướng dẫn này.
Ví dụ-1: Sử dụng lệnh chờ cho nhiều quá trình
Sau khi thực hiện đoạn mã sau, hai tiến trình sẽ chạy trong nền và id tiến trình của lệnh echo đầu tiên được lưu trong biến $ process_id. Khi lệnh wait được thực hiện với $ process_id thì lệnh tiếp theo sẽ đợi hoàn thành nhiệm vụ của lệnh echo đầu tiên. Lệnh chờ thứ hai được sử dụng với ‘ $! 'Và điều này cho biết id quy trình của quy trình đang chạy cuối cùng. ‘ $? 'Được sử dụng để đọc giá trị trạng thái của lệnh chờ.
#! / bin / bash
quăng đi 'test wait command1' &
xử lý ID=$!
quăng đi 'test wait command2' &
đợi đã $ process_id
quăng điCông việc1thoát ra với trạng thái$?
đợi đã $!
quăng điCông việc2thoát ra với trạng thái$?
Đầu ra:
$bấu víuwait1.sh
Ví dụ-2: Kiểm tra lệnh chờ sau khi sử dụng lệnh giết
Trong tập lệnh sau, lệnh chờ được thực hiện sau khi kết thúc quá trình. lệnh sleep đang chạy như một quá trình nền và lệnh kill được thực hiện để chấm dứt quá trình đang chạy. Sau khi lệnh chờ đó được thực thi với id tiến trình của tiến trình đã kết thúc. Đầu ra sẽ hiển thị id tiến trình của tiến trình đã kết thúc.
#! / bin / bashquăng đi 'Lệnh chờ kiểm tra'
ngủ hai mươi &
pid=$!
giết chết $ pid
đợi đã $ pid
quăng đi $ pidđã bị chấm dứt.
Đầu ra:
$bấu víuwait2.sh
Ví dụ-3: Kiểm tra giá trị trạng thái thoát
Trong tập lệnh sau, hàm đánh dấu() được gọi bởi hai giá trị đối số. Nó được thảo luận trong phần đầu của hướng dẫn rằng nếu lệnh chờ được thực thi thành công, giá trị thoát sẽ là 0 và nếu lệnh chờ phát hiện bất kỳ lỗi nào thì nó sẽ trả về bất kỳ giá trị nào trong khoảng từ 1 đến 126. Sau khi chạy tập lệnh, nếu bạn chuyển 0 làm đối số thứ hai giá trị thì lệnh chờ kết thúc thành công và nếu bạn chuyển bất kỳ giá trị nào lớn hơn 0 thì lệnh đó sẽ kết thúc không thành công.
#! / bin / bashhàm sốđánh dấu()
{
quăng đi 'Ngủ trong $ 1 giây'
ngủ $ 1
lối ra $ 2
}
đánh dấu$ 1 $ 2 &
NS=$!
quăng đi 'Kiểm tra trạng thái'
đợi đã $ b && quăng điVÂNG|| quăng điKHÔNG ỔN
Đầu ra:
$bấu víuwait3.sh3 0$bấu víuwait3.sh3 5
Hy vọng, hướng dẫn này sẽ giúp học cách sử dụng lệnh wait đúng cách. Có một lệnh khác trong Linux, có tên ngủ để đợi trong một khoảng thời gian nhất định nhưng có một số khác biệt giữa các lệnh này. Nếu bạn quan tâm để biết về lệnh ngủ thì bạn có thể truy cập liên kết này.