Pernyataan masalah
Saya telah mengikuti banyak contoh untuk melakukan hal-hal kreatif dengan sejarah bash di sepanjang baris:
# simplified example
PROMPT_COMMAND='history -a; history -c; history -r'
... tapi sepertinya bekerja sebentar-sebentar. Jika file riwayat sudah ada dengan riwayat sebelumnya maka semuanya baik-baik saja.
Info relevan lainnya
- versi bash: 3.2.51, 4.1.2, dan 4.2.45
- 4.2.x tampaknya tidak memiliki masalah ini, tetapi ini adalah instalasi non-default
- OS: Linux & amp; Solaris
- home dir sudah dipasang NFS
Langkah diagnostik
Saya menyingkirkan saya .bashrc
& amp; atur .bash_profile
untuk:
HISTFILE=$HOME/.bash_history.test
Saya kemudian akan memulai shell login (misalnya, ssh ke komputer lain) & amp; lakukan sesuatu seperti berikut:
~ cat .bash_history.test
cat: .bash_history.test: No such file or directory
~ history
1 cat .bash_history.test
2 history
~ history -a
~ !-3
cat .bash_history.test
cat: .bash_history.test: No such file or directory
File riwayat tidak akan ditambahkan oleh history -a
dalam keadaan berikut:
- File belum ada
- File kosong atau hanya berisi baris baru; bahkan spasi putih akan membuatnya bekerja
... Namun, ketika shell keluar tidak menciptakannya. Kemudian, history -a
berfungsi seperti yang diharapkan ... kecuali kapan PROMPT_COMMAND="history -a; history -c; history -r"
. Ketika saya memiliki set itu, bahkan keluar dari shell tidak membuat file histori (kecuali saya berlari exec bash
pertama).
Saya kemudian mencoba dengan instalasi bash (4.2.x) yang tidak standar dan masalahnya tidak nyata.