Bir bash shell betiği çalıştırdığınızda, örneğin shebang satırı olan yürütülebilir bir dosyayı çalıştırarak #!/bin/bash
, betik etkileşimli olmayan bir kabukta çalıştırılır. Etkileşimli olmayan bir kabuğun özelliklerinden biri, geçmişin devre dışı bırakılmış olmasıdır. Dolayısıyla, komut dosyanızın geçmişi kullanabilmesini istiyorsanız, bunun gibi bir şey yapmanız gerekir:
#!/bin/bash
HISTFILE=~/.bash_history # Or wherever you bash history file lives
set -o history # enable history
history | grep git
Tabii ki, bu durumda az önce yapmış olabilirsiniz:
grep git ~/.bash_history
Yukarıdakilerin her ikisi de geçmiş dosyasının ( ~/.bash_history
) güncel olmasını gerektirdiğinden, neredeyse kesinlikle olmayacaktır.
Mesele satırı kaldırıldıktan sonra komut dosyanızı nasıl çalıştıracağınızdan emin değilim. Komutlar, geçmiş etkinleştirilmiş olan geçerli kabukta çalıştığından , dosyayı kaynaklamak (ör., İle .
) komut dosyasını çalıştırmakla aynı şey değildir .
bash
v3 kullanıcısı, sadece hayal kırıklığı yüzünden, haha). En azından Martin için çözümüm çok yardımcı oldu, bu en azından bir rahatlıktı.