EDIT: Bạn có thể thực hiện việc này theo cách tương thích POSIX với công cụ lệnh sửa lỗifc
:
fc 77 79
Điều này sẽ mở trình soạn thảo của bạn (có thể vi
) với các lệnh 77 đến 79 trong bộ đệm. Khi bạn lưu và thoát ( :x
), các lệnh sẽ được chạy.
Nếu bạn không muốn chỉnh sửa chúng và bạn RẤT RẤT NHIỀU bạn biết bạn đang gọi lệnh nào, bạn có thể sử dụng:
fc -e true 77 79
Cái này sử dụng true
như một "trình soạn thảo" để chỉnh sửa các lệnh, vì vậy nó chỉ thoát mà không thực hiện bất kỳ thay đổi nào và các lệnh được chạy như hiện trạng.
TRẢ LỜI GỐC:
Bạn có thể dùng:
history -p \!{77..79} | bash
Điều này giả định rằng bạn không sử dụng bất kỳ bí danh hoặc hàm hoặc bất kỳ biến nào chỉ có trong môi trường thực thi hiện tại, vì tất nhiên những cái đó sẽ không có sẵn trong shell mới được bắt đầu.
Một giải pháp tốt hơn (cảm ơn Michael Hoffman đã nhắc nhở tôi trong các bình luận) là:
eval "$(history -p \!{77..79})"
Một trong những trường hợp rất, rất ít eval
thực sự phù hợp!
Cũng thấy:
!77 ; !78 ; !79
không