Burada bir sorunu işaret edeceğim
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"
ve
PROMPT_COMMAND="$PROMPT_COMMAND;history -a; history -n"
~ / .Bashrc kaynağını çalıştırırsanız, $ PROMPT_COMMAND gibi olacaktır
"history -a; history -c; history -r history -a; history -c; history -r"
ve
"history -a; history -n history -a; history -n"
Bu tekrar, 'source ~ / .bashrc' dosyasını her çalıştırışınızda gerçekleşir. 'Echo $ PROMPT_COMMAND' komutunu çalıştırarak 'source ~ / .bashrc' komutunu her çalıştırdığınızda PROMPT_COMMAND öğesini kontrol edebilirsiniz.
Bazı komutların açık bir şekilde bozulmuş olduğunu görebiliyordunuz: "history -n history -a". Fakat iyi haber şu ki, hala çalışıyor, çünkü diğer bölümler hala geçerli bir komut dizisi oluşturuyor (Bazı komutları tekrarlı bir şekilde yerine getirme nedeniyle ekstra bir miktar maliyet gerektiriyor. Ve çok temiz değil.)
Şahsen aşağıdaki basit sürümü kullanıyorum:
shopt -s histappend
PROMPT_COMMAND="history -a; history -c; history -r"
işlevselliklerin çoğuna sahip olan ve yukarıda belirtilenlerin hiçbirinde sorun yok.
Yapılması gereken bir başka nokta: Gerçekten sihir yok . PROMPT_COMMAND sadece basit bir bash ortam değişkenidir. İçindeki komutlar bash istemi ($ işareti) almadan önce yerine getirilir. Örneğin, PROMPT_COMMAND cihazınız "echo 123" dür ve terminalinizde "ls" yi çalıştırırsınız. Etki "ls; echo 123" çalıştırmak gibidir.
$ PROMPT_COMMAND="echo 123"
çıktı (Tıpkı 'PROMPT_COMMAND = "echo 123"; $ PROMPT_COMMAND' gibi):
123
Aşağıdakileri çalıştırın:
$ echo 3
çıktı:
3
123
"history -a", geçmiş komutlarını bellekte ~ / .bash_history dosyasına yazmak için kullanılır.
"history -c", bellekteki tarih komutlarını silmek için kullanılır.
"history -r", tarih komutlarını ~ / .bash_history'den belleğe okumak için kullanılır
Burada tarihçe komut açıklamasına bakınız: http://ss64.com/bash/history.html
Not: Diğer kullanıcılar belirttiği gibi, ihracat gereksizdir. Bakınız: .bashrc içindeki dışa aktarımı kullanma