Ich möchte Zeitstempel für die in meiner Bash $ HISTFILE protokollierten Befehle behalten. Ist das möglich?
Ich habe es nicht geschafft, es man bash
als Informationsquelle einzurichten .
Meine anderen Optionen sind wie folgt:
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
Ich hätte erwähnen sollen, dass ich auf OS X Mountain Lion bin (seufz). uname -a
gibt mir:
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
und echo $BASH_VERSION
gibt mir:
3.2.48(1)-release
Versuchte dies hinzuzufügen:
export HISTTIMEFORMAT='%b %d %I:%M:%S %p '
und diese Art von Zeitstempeln wird nur den Befehlen vorangestellt:
#1349057791
Ich versuche, die Variable ( echo $HISTTIMEFORMAT
) zurückzugeben, sie hat den richtigen Wert.
Interessant!
Ich habe sogar .profile komplett entfernt, um dies zu debuggen. Immer noch nur lustige Zeitstempel:
#1349058320
Ich weiß nicht, wie ich das weiter beheben soll ... :(
Lösung : Ich habe ein Skript verwendet, das die $ HISTFILE direkt liest, nicht den integrierten Verlauf, sodass der epochenbasierte Zeitstempel (Sekunden seit UTC (Coordinated Universal Time) vom 1. Januar 1970) nicht mit der Datumsformatierungszeichenfolge übersetzt wurde . Plain-old history
funktioniert gut, ich werde das stattdessen verwenden.
HISTTIMEFORMAT
?