Trong Bash, thỉnh thoảng tôi sẽ gõ vào một danh sách các lệnh và nhấn Entervà chỉ sau đó nhận ra rằng có một lỗi với một số lệnh ở gần cuối danh sách. Tôi biết rằng nếu tôi nhấn Ctrl+ Cnó sẽ chấm dứt lệnh hiện đang chạy và hủy phần còn lại của danh sách. Có cách nào để hủy phần còn lại của danh sách mà không chấm dứt lệnh hiện đang chạy không?
Ví dụ: giả sử tôi đã gõ một cái gì đó như
foo; bar
hoặc là
foo && bar
trong đó foo
một lệnh chạy dài mà rất quan trọng là không làm gián đoạn và bar
thực hiện một cái gì đó không thể đảo ngược và không mong muốn (nói, shutdown -h now
hoặc rm -rf /
). Trong khi foo
vẫn đang chạy, có một cách chung để nói với vỏ để foo
hoàn thành nhưng không chạy bar
sau đó? (Vâng, tôi có thể thay đổi các điều khoản trên bar
để nó không thực thi, nhưng đó không phải là đặc biệt tiện lợi nếu bar
là một cái gì đó giống như rm
là tôi muốn sử dụng trong khi chờ đợi, và cũng không nó sẽ làm việc nếu tôi không làm riêng bar
hoặc nếu bar
là một dựng sẵn.)
bar
lệnh cuối cùng thànhsome_command
:^bar^some_command
trước khi được thực thi.