シェルスクリプトはHistoryコマンドを使用して、スクリプトの最後の実行タイムスタンプを取得します。

シェルスクリプトはHistoryコマンドを使用して、スクリプトの最後の実行タイムスタンプを取得します。

以下の方法を使用して、スクリプト実行の最後のタイムスタンプを取得しようとしています。コマンドラインを介して正常に動作しますが、スクリプトを介して現在の時刻を提供します。ここに何の問題があるのか​​よくわかりません。

コマンドライン:

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

この設定を適用するには再度ログインする必要があり、新しい履歴履歴の正しいタイムスタンプのみを表示できます。

おすすめ記事