Sunting: Anda dapat melakukan ini dengan cara yang sesuai dengan POSIX dengan alat perintah perbaikanfc
:
fc 77 79
Ini akan membuka editor Anda (mungkin vi
) dengan perintah 77 hingga 79 di buffer. Saat Anda menyimpan dan keluar ( :x
), perintah akan dijalankan.
Jika Anda tidak ingin mengeditnya dan Anda SANGAT PASTI Anda tahu perintah mana yang Anda panggil, Anda dapat menggunakan:
fc -e true 77 79
Ini digunakan true
sebagai "editor" untuk mengedit perintah, sehingga hanya keluar tanpa membuat perubahan dan perintah dijalankan apa adanya.
JAWABAN ASLI:
Anda dapat gunakan:
history -p \!{77..79} | bash
Ini mengasumsikan bahwa Anda tidak menggunakan alias atau fungsi atau variabel apa pun yang hanya ada di lingkungan eksekusi saat ini, karena tentu saja itu tidak akan tersedia di shell baru yang sedang dimulai.
Solusi yang lebih baik (terima kasih kepada Michael Hoffman karena mengingatkan saya pada komentar) adalah:
eval "$(history -p \!{77..79})"
Salah satu dari sangat, sangat sedikit kasus di mana eval
sebenarnya sesuai!
Lihat juga:
!77 ; !78 ; !79
apa-apa