Ketika saya menjalankan analisis saya menggunakan bash shell, saya sering ingin menyimpan perintah yang saya gunakan yang memberi saya hasil yang baik ke file di direktori yang sama ("LOGBOOK" saya, sesuai namanya) sehingga saya dapat memeriksa apa Saya lakukan untuk mendapatkan hasil itu. Sejauh ini, ini berarti saya menyalin. Mengecek perintah dari terminal atau menekan "naik" untuk memodifikasi perintah menjadi echo"my command" >> LOGBOOK
, atau kejenakaan serupa lainnya.
Saya menemukan ada history
alat tempo hari, tetapi saya tidak dapat menemukan cara menggunakannya untuk mendapatkan perintah yang sebelumnya dieksekusi sehingga saya dapat melakukan sesuatu seperti getlast >> LOGBOOK
.
Apakah ada cara mudah yang bagus untuk melakukan ini. Atau, bagaimana orang lain berurusan dengan menyimpan perintah untuk hasil yang mereka miliki?
sumber
fc -lnr | head -n 1
bisa disingkatfc -lnr -1
.help fc
untuk dokumentasi saya. Halaman bash man memiliki lebih banyak detail, termasuk penggunaan indeks negatif ini. Menghilangkanhead
itu bagus karena satu perintah yang tersisa adalah built-in jadi sekarang tidak ada fork / exec.fc
...Satu masalah dengan jawaban @ camh adalah jika Anda memiliki perintah yang merentang beberapa baris, itu hanya menunjukkan baris pertama:
Coba ini:
sumber
cmdhist
akan memperbaikinya: "Jika diatur, bash mencoba untuk menyimpan semua baris perintah beberapa baris dalam entri riwayat yang sama. Ini memungkinkan pengeditan ulang perintah multi-baris dengan mudah."Alih-alih menggunakan panah atas, Anda dapat menggunakan
"!!"
untuk merujuk ke perintah sebelumnya.misalnya
Catatan: ini tidak mengutip teks literal
sumber
ls | less
->echo !! >> LOGBOOK
->echo ls | less >> LOGBOOK
.Anda bisa melakukannya dengan perintah berikut jika Anda menggunakan bash shell:
Ini akan menambahkan semua perintah Anda dari sesi saat ini ke file itu, Anda juga dapat menambahkan alias pada file ~ / .bashrc Anda untuk melakukan ini dengan satu perintah:
sumber