Jika Anda ingin menggunakan output dari history
perintah dari sesi shell aktif dalam skrip, Anda dapat menggunakan alias untuk menjalankan perintah terlebih dahulu. Kemudian, dengan alias yang sama, Anda dapat memanggil sisa skrip. Dengan konfigurasi seperti itu, Anda pada dasarnya dapat mencapai hasil yang sama dengan memiliki history
perintah dalam skrip yang sebenarnya.
Misalnya, Anda dapat membuat alias seperti ini, dengan asumsi nama skrip adalah script.sh:
alias hy_tmp='history | tail -100 > /tmp/history.log ; bash /patch/to/script.sh'
Dan ubah skrip menjadi ini:
#!/bin/bash
cd /tmp
uuencode history.log history.txt | mail -s "History log of server" hello@hel.com
Saya menemukan pertanyaan ini saat menulis proses untuk menggabungkan, mengurutkan dan menyinkronkan ~/bash_history
file di dua komputer sehingga akan mudah untuk mencari perintah yang saya gunakan di masa lalu.
Jauh lebih mudah untuk memperbarui file kumulatif riwayat saya tanpa harus masuk ke shell baru untuk ~/bash_history
memperbarui. Untuk memonitor server, ini jelas tidak akan berfungsi, seperti yang disebutkan dalam jawaban lain.
Penggunaan saya khususnya adalah:
alias hbye='history | cut -c 8- > /home/chris/.bash_history_c; bash /hby.sh
Script hby.sh
kemudian menarik semua entri unik dari semua ~/.bash_history*
file.
histtest.sh: 5: set: Illegal option -o history