Trong kịch bản Bash, ý nghĩa của Lời $! NÓI?


39

Nếu tôi chỉ định một biến với

temp=$!

giá trị của nó là gì?

Câu trả lời:


57

$!chứa ID tiến trình của đường ống nền được thực hiện gần đây nhất. Từ man bash:

Thông số đặc biệt

Vỏ xử lý một số thông số đặc biệt. Các thông số này chỉ có thể được tham chiếu; giao cho họ không được phép.

...

! - Mở rộng tới ID tiến trình của lệnh nền (không đồng bộ) được thực hiện gần đây nhất.

Ví dụ:

$ sleep 60 &
[1] 6238
$ echo "$!"
6238

Tôi có cảm giác rằng bạn và slm đang nói về điều tương tự :)
msw

22

Từ trang người đàn ông của Bash:

   !   Expands to the process ID of the most recently executed 
       background (asynchronous) command.

Vì vậy, $!sẽ chứa ID tiến trình (PID) của công việc cuối cùng được làm nền.

Thí dụ

$ sleep 100 &
[1] 18813

$ echo "$!"
18813

Tài liệu tham khảo


1
Tôi có cảm giác rằng bạn và Chris Down đang nói về cùng một điều :)
một CVn

2
Dường như có tiếng vang về Câu hỏi 8-) này.
slm

Cùng một số phiếu, quá!
một CVn

@ MichaelKjorling - hey những bộ óc vĩ đại nghĩ giống nhau 8-).
slm
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.