日付ユーティリティを使用したエポック時間の印刷

日付ユーティリティを使用したエポック時間の印刷

読書からもう一つの答え次のコマンドを使用して現在の内容を印刷できることを知っています。エポック時間:

$ date +'%s'
1491150773

読書からdate(1)マニュアルページ(注:私は実際にmacOSを使用しています)で使用方法を示す例を見つけました。

 Finally the command:

 date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"

 can be used to parse the output from date and express it in Epoch time.

+例を読んでみると、次のように単一引用符の中に入れることができるようです。

$ date '+%s'
1491150781

現在、エポック時間を正常に印刷できますが、なぜ動作するのか理解できず、いくつかの問題があります。

  • date +'%s'現在の時代を印刷するのはなぜですか?この例で使用パターンを示すより一般的な例はありますか?
  • +なぜ引用符の中に引用符を入れることができますか?

コマンドを入れてみました。シェルの解釈、しかしあまり役に立ちません。

ここに画像の説明を入力してください。

ベストアンサー1

BSD 日付と GNU 日付の両方に次の形式があります。

date +FORMAT

withはFORMAT日付を表示するための出力形式文字列です。したがって、入力する必要があるのは、で始まるdate文字列だけです+

文字列は、シェルに渡される前にdateシェルによって解釈されます。したがって、+%sどちらか一方+'%s'または"+%s"両方が同じであり、すべてのPOSIXシェルでそのまま解釈されます。

唯一の利点+'%s'は、心配することなく、どの文字列形式が使用されているかをすばやく検出したり、コピーして解析したりできることです+

また、+'FORMAT'シェル拡張として解釈できる特殊な型を使用する場合にも役立ちます。例zsh:

date +'(%s)'

次のように動作します。

date +(%s)

習慣。

おすすめ記事