मैं अपने Bash $ HISTFILE में लॉग इन कमांड पर टाइमस्टैम्प रखना चाहूंगा, क्या यह संभव है?
मैंने man bash
सूचना स्रोत के रूप में इसका उपयोग करने का प्रबंधन नहीं किया ।
मेरे अन्य विकल्प इस प्रकार हैं:
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
मुझे उल्लेख करना चाहिए था कि मैं ओएस एक्स माउंटेन लायन (आह) पर हूं। uname -a
मुझे देता है:
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
और echo $BASH_VERSION
मुझे देता है:
3.2.48(1)-release
इसे जोड़ने की कोशिश की:
export HISTTIMEFORMAT='%b %d %I:%M:%S %p '
और यह केवल इस प्रकार के टाइमस्टैम्प्स को उपसर्गों को कमांड करता है:
#1349057791
मैं चर ( echo $HISTTIMEFORMAT
) को वापस गूँजने की कोशिश करता हूं , इसका सही मूल्य है।
दिलचस्प!
मैंने इसे हटाने के लिए पूरी तरह से हटा दिया है। अभी भी केवल मजेदार टाइमस्टैम्प:
#1349058320
मैं नहीं जानता कि यह कैसे आगे का निवारण करना है ... :(
समाधान : मैं एक ऐसी स्क्रिप्ट का उपयोग कर रहा था, जो $ HISTFILE को सीधे पढ़ती है, न कि इतिहास में निर्मित इसलिए युग-आधारित टाइमस्टैम्प (1 जनवरी, 1970 के समन्वित यूनिवर्सल टाइम (UTC) के बाद से सेकंड) का उपयोग दिनांक स्वरूपित स्ट्रिंग का उपयोग करके नहीं किया जा रहा था। । सादा-पुराना history
ठीक काम करता है, मैं इसके बजाय इसका उपयोग करूँगा।
HISTTIMEFORMAT
?