2012-01-09 17 views
0

いつもの設定ファイルは新しく生成され、 セッション番号が付加されています。 会社は、Feb 16に、86400秒 ()としました。 セッション番号は、同社がseconds_since_last_dayから 日をスタート減算して追加することによって生成された数ゼロの日は、ファイルをconfigコンと対話するための鍵ですbashシェルスクリプト内のdateコマンド

。私はこれを得る - しかし私は を理解していない

date -ud "$distance days ago 00:00:00"を理解する。

1970年以降の秒数ですか?

if $session; then 
     # return the session of the last day 
     seconds_since_day_one=`date -ud "Feb 16 2002" +"%s"` 
     seconds_since_last_day=`date -ud "$distance days ago 00:00:00" +"%s"` 
     days_between=`printf "%010d" $(((seconds_since_last_day - seconds_since_day_one)/86400))` 
     # Truncate on the left to 9 bytes to leave room 
     # to append the engine suffix for your environment 
     echo $days_between | awk '{l=length($1); print substr($1, (l-8), l)}' 

答えて

0

オプション-d〜dateは、日付を取得するための一般的な文字列を提供します。

たとえば、date -d yesterdayは昨日の日付を印刷し、date -d 'yesterday 12:00 AM'は昨日の日付を午前12:00に設定して印刷します。

したがって、date -d 6 days ago 00:00:00は、6日前の日付を00:00:00に設定して印刷します。あなたの質問に答えることを願っています。

+ "%s"という形式は、dateに1970年からの秒数を印刷するように指示しています。

+0

'date -d 6 days ago'は6日前の日付を出力し、' date -ud "$ distance days 00:00:00" '= Sun Jan 8 00:00:00 UTC 2012( yesterdays date)と 'date -ud" $ distance days 00:00:00 "+"%s "は私に$ 1325980800を与えます$ distanceの値は何ですか?私は距離がどんな価値を持っているのか分かりません。このシェルスクリプトは私に正しいセッションを与えます。 – capser

+0

は$ distance nullですか? – capser

+0

距離がnullの場合、私はdateコマンドを壊すと思っていたが、何も破壊していないように見えるからだ。 – capser

2

date -ud "$distance days ago 00:00:00"はそれだけではかなり読みやすい形式で日付を表示しますが、出力を制御するためにFORMAT文字列を追加すると+"%s"は実際にはいわゆるUNIX時間(秒数1970-01-01 00:00:00 UTC)。

変数$distanceが数値に設定されている場合、その日数を表す数値が0に設定されている場合は今日、1は昨日、2は昨日の前日などとなります。これらのフォーマットと相対的なキーワードをよりよく理解するために、GNU coreutilsパッケージ(他の場所の中でも)にはかなり良い文書があります。

チェックこれらのURL:Unixの時間の
http://www.gnu.org/software/coreutils/manual/html_node/Relative-items-in-date-strings.html#Relative-items-in-date-strings
http://www.gnu.org/software/coreutils/manual/html_node/Date-input-formats.html
http://www.gnu.org/software/coreutils/manual/html_node/date-invocation.html#date-invocation

ウィキペディアの説明:
http://en.wikipedia.org/wiki/Unix_time

関連する問題