Benim Bash $ HISTFILE oturum komutları üzerinde zaman damgaları tutmak istiyorum, mümkün mü?
man bash
Bir bilgi kaynağı olarak kurmayı başaramadım .
Diğer seçeneklerim aşağıdaki gibidir:
function thebanana() {
local -r -a bash_commands=(
"ls"
# ... more coconut commands
)
for bash_command in "${bash_commands[@]}"; do
printf "${bash_command}"
printf ":"
done
}
export HISTFILE=banana
export HISTIGNORE="$(thebanana)"
export HISTSIZE=999999
export HISTFILESIZE=999999999
export HISTCONTROL=ignoredups:erasedups
OS X Mountain Lion (iç çekiş) üzerinde olduğumu söylemeliydim. uname -a
bana verir:
Darwin CoconutMac.local 12.2.0 Darwin Kernel Version 12.2.0: Sat Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64 x86_64
ve echo $BASH_VERSION
bana:
3.2.48(1)-release
Bunu eklemeyi denedim:
export HISTTIMEFORMAT='%b %d %I:%M:%S %p '
yalnızca komutlara bu tür zaman damgalarının ön ekini verir:
#1349057791
Değişken ( echo $HISTTIMEFORMAT
) geri echoing deneyin , doğru değeri vardır.
İlginç!
Hatta bu hata ayıklamak için .profile tamamen kaldırıldı. Hala sadece komik zaman damgaları:
#1349058320
Bunun nasıl giderileceğini bilmiyorum ... :(
Çözüm : Çocuğa dayalı zaman damgası (1 Ocak 1970 Koordineli Evrensel Saat'ten (UTC) bu yana saniye) tarih biçimlendirme dizesi kullanılarak çevrilmiyordu, bu nedenle geçmişte değil, $ HISTFILE'ı doğrudan okuyan bir komut dosyası kullanıyordum . Düz-eski history
çalışıyor, bunun yerine kullanacağım.
HISTTIMEFORMAT
mi?