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
私はOS X Mountain Lion(ため息)にいると言及すべきでした。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
)をエコーバックしてみてください。正しい値があります。
面白い!
これをデバッグするために.profileを完全に削除しました。それでも面白いタイムスタンプのみ:
#1349058320
これをさらにトラブルシューティングする方法がわかりません... :(
解決策:組み込みの履歴ではなく、$ HISTFILEを直接読み取るスクリプトを使用していたため、エポックベースのタイムスタンプ(1970年1月1日の協定世界時(UTC)からの秒数)が日付書式文字列を使用して翻訳されていませんでした。平凡なものhistory
は問題なく動作します。代わりにそれを使用します。
おそらくstrftime形式が間違っています。マニュアルページに少なくともいくつかの例が含まれていれば役立ちます。+%Y-%m-%d%H-%M-%S?
—
Robottinosino
HISTTIMEFORMAT
か?