2012-06-13 12 views
5

これはおそらく非常に基本的な質問です。しかし、私はちょうどLinuxで鞍に戻っています。Epochから人間が読める日付を変数に変換する

私は、pauseTimeと呼ばれるエポック時間を保持する変数を持っています。 私はその変数を人間が読めるようにする必要があります(2012-06-13 13:48:30のようなものです)。

私はちょうど

date -d @133986838 //just a random number there 

を入力することができ、それは似たような印刷されます知っています。しかし、エポックタイムではなく、人間が読める日付を保持する変数を取得する必要があります...私は、私が試しているすべてのエラーで実行し続けます。どのように私はこれを行うことができますか?

答えて

7

さて、この操作を行います。

VARIABLENAME=$(date -d @133986838) 

、その後

export VARIABLENAME 

またはbashで直接実行します。

export VARIABLENAME=$(date -d @133986838) 

あなたは書式設定したい場合は、通常のISO形式に言う:

export ISODATE=$(date -d @133986838 +"%Y-%m-%d %H:%M:%S") 
# or 
EPOCHDATE=133986838 
export ISODATE=$(date -d @$EPOCHDATE +"%Y-%m-%d %H:%M:%S") 

+の背後にある形式は、man dateで説明されています。

注:$()は、最新のバッククォート形式です。私。コマンドからの出力を変数にキャッチする。しかし、$()は、いくつかのことをより簡単にします。特に、内部でルールをエスケープします。したがって、あなたのシェルがそれを理解しているならば、常にバッククォートよりも好むべきです。

+0

ありがとう、私は似たようなことを試していた...しかし、あなたの後に私は私のループの最後に変数を決して決してないことに気づいた。次のパスでエラーが発生します。ありがとう、それは私の問題を解決する。 – W3BGUY

+1

なぜ変数をエクスポートすることをお勧めしますか? – jordanm

+0

なぜ変数をエクスポートしていますか?私はほとんどそれが必要ではないと確信しています。子プロセスはそれを見る必要がありますか?これが唯一の理由です。何人かの人々はこれを習慣的に行い、そうしてはいけません。 –

関連する問題