以下の方法を使用して、スクリプト実行の最後のタイムスタンプを取得しようとしています。コマンドラインを介して正常に動作しますが、スクリプトを介して現在の時刻を提供します。ここに何の問題があるのかよくわかりません。
コマンドライン:
HISTTIMEFORMAT="%d/%m/%y %T" history | grep -v grep | grep "\/test\.sh -f \input.xml"| tail -n1
出力:スクリプト実行の正確な時間
スクリプト:
#!/bin/bash
HISTFILE=~/.bash_history
set -o history
HISTTIMEFORMAT="%d/%m/%y %T" history | grep -v grep | | grep "\/test\.sh -f \input.xml"| tail -n1
出力:スクリプト実行時間、常に現在時刻
答え1
タイムスタンプ付きの履歴を表示するには、履歴ファイルにタイムスタンプを指定する必要があります。export HISTTIMEFORMAT="%d/%m/%y %T"
設定ファイルに履歴タイムスタンプを追加(追加)するか、または ~/.bashrc
(システム全体)の~/.bash_profile
いずれかを実行します。/etc/profile
この設定を適用するには再度ログインする必要があり、新しい履歴履歴の正しいタイムスタンプのみを表示できます。