Làm thế nào để xếp hàng một lệnh để chạy sau khi một lệnh khác kết thúc?


9

Đôi khi tôi bắt đầu một chương trình mất rất nhiều thời gian để kết thúc ( emerge), sau đó nhận ra rằng tôi nên đi ngủ thay vì chờ đợi nó. Nếu tôi biết điều này ở nơi đầu tiên tôi sẽ chạy

program; halt

Tuy nhiên, bây giờ tôi đã khởi động chương trình, làm thế nào tôi có thể "lên lịch" cho máy tính tắt khi quá trình đó kết thúc? Sẽ Ctrl+zsau đó fg; haltđược OK?

Câu trả lời:


15

Vâng, điều đó sẽ làm việc.

Nếu không chắc chắn, bạn có thể kiểm tra nó với

  • sleep 15

  • Ctrl+z

  • fg; echo "it works"


2

Một cách khác là chỉ gõ haltvào thiết bị đầu cuối của bạn trong khi lệnh đầu tiên đang chạy; miễn là lệnh đầu tiên không đọc đầu vào tại một số điểm, nó sẽ nằm trong bộ đệm của thiết bị đầu cuối và trình bao sẽ đọc nó khi chương trình đầu tiên kết thúc


1

Sử dụng waitlệnh

$ sleep 10 &
[1] 29703
$ wait 29703 && echo hello
[1]+  Done                    sleep 10
hello
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.