Lệnh Bash Wait trong Linux

Bash Wait Command Linux



Chờ là một lệnh Linux trả về trạng thái thoát sau khi đợi quá trình chạy hoàn tất. Khi một số quá trình đang chạy đồng thời, lệnh chờ chỉ có thể theo dõi quá trình cuối cùng. Nếu lệnh chờ không được liên kết với công việc hoặc ID quy trình, nó sẽ đợi tất cả các quy trình con hoàn thành trước khi trả về trạng thái thoát. Lệnh bash wait thường được sử dụng với lệnh ID tiến trình hoặc ID công việc.

Trong hướng dẫn này, chúng ta sẽ khám phá Lệnh chờ Bash trong Linux.







Cú pháp:

Cú pháp chung của lệnh Wait trong Linux là:



đợi [option] ID

ID sẽ là ID quy trình hoặc ID công việc.



Giải thích Lệnh chờ Bash trong Linux:

Đầu tiên, tạo một tệp bằng cách sử dụng lệnh cảm ứng:





$chạm vàoBashWait.sh

Làm cho tệp này có thể thực thi được bằng cách sử dụng lệnh dưới đây:



$chmod+ x tên tệp

Khi các đặc quyền thực thi được cấp cho tệp, hãy mở tệp và viết tập lệnh vào tệp bash:

#! / bin / bash

ngủ 3 &

xử lý ID=$!

quăng đi 'PID:$ processID'

đợi đã $ processID

quăng đi 'Trạng thái thoát: $?'

$! là một biến trong BASH lưu trữ PID của quá trình gần đây nhất.

Bây giờ, hãy chạy tập lệnh như sau:

$./tên tập tin

$./BashWait.sh

ID tiến trình và trạng thái Tồn tại sẽ xuất hiện trong trình bao.

Sử dụng tùy chọn –n:

Với tùy chọn –n, lệnh chờ chỉ đợi một công việc duy nhất từ ​​ID tiến trình được cung cấp hoặc thông số công việc kết thúc trước khi trả về trạng thái thoát của nó. Wait -n đợi bất kỳ công việc nền nào kết thúc và trả về trạng thái thoát công việc nếu không có đối số nào được cung cấp.

Viết các dòng cho sẵn dưới đây trong tập lệnh của bạn:

#! / bin / bash

ngủ 30 &

ngủ số 8 &

ngủ 7 &

đợi đã -n

quăng đi 'Công việc đầu tiên đã được hoàn thành.'

đợi đã

quăng đi 'Tất cả các công việc đã được hoàn thành.'

Tiếp theo, chạy lại tập lệnh và khi công việc đầu tiên hoàn thành, nó sẽ in thông báo trên thiết bị đầu cuối và đợi tất cả các công việc khác được hoàn thành.

Sử dụng tùy chọn –f:

Tùy chọn -f đợi mỗi id quy trình hoặc công việc dừng trước khi trả lại mã thoát. Kiểm soát công việc chỉ khả dụng cho các lời nhắc đáp ứng theo mặc định.

Mở thiết bị đầu cuối và chạy lệnh:

Chờ quy trình 3944.

Mở một cửa sổ đầu cuối khác và thực hiện lệnh kill để kết thúc quá trình.

Trạng thái sẽ được thay đổi. Lệnh Wait sẽ hoàn tất và trả về mã thoát quy trình.

Lặp lại các bước đã cho ở trên với lệnh –f.

Tập lệnh với lệnh Chờ:

Chúng tôi đang sử dụng tập lệnh ‘hello.sh’ và ‘bash.sh’ để trình diễn. Tập lệnh ‘hello.sh’ in các số từ 1 đến 5 và tập lệnh ‘bash.sh’ gọi hello.sh và chạy nó trong nền, có PID của hello.sh và đợi nó kết thúc.

Tạo hai tập lệnh với tên hello và bash:

Thêm các dòng dưới đây vào tệp hello.sh:

#! / bin / bash

tôitrong 1 2 3 4 5 6 7 số 8 9 10

làm

quăng đihello.sh - Số vòng lặp$ i.

xong

Thêm các dòng cho sẵn dưới đây trong tập lệnh bash:

#! / bin / bash

quăng điĐã bắt đầu bash.sh

quăng điĐã bắt đầu hello.sh

./xin chào.sh&

xử lý ID=$!

đợi đã $ process_id

quăng điĐã hoàn thành hello.sh

Đầu ra:

Phần kết luận:

Khi người dùng muốn dừng một quy trình, hệ thống sẽ giải phóng tất cả các tài nguyên được quy trình đó giữ lại và đợi quy trình khác bắt đầu. Chúng tôi sẽ cần thông báo cho quá trình rằng nó có thể bắt đầu lại quá trình thực thi sau khi các quá trình khác hoàn tất. Lệnh wait trong bash đợi hoàn thành quá trình thực thi và trả về trạng thái thoát khi quá trình thực thi hoàn tất. Trong hướng dẫn này, chúng ta đã thấy một số ví dụ về lệnh Bash wait trong Linux.