サーチ…


前書き

Bash 4.2では、 printfシェル組み込み時間変換が導入されました。フォーマット指定%(datefmt)Tは、 printf出力に、 strftime理解するフォーマット文字列datefmt対応する日付 - 時刻文字列を出力させます。

構文

  • printf '%(dateFmt)T'#dateFmtには、strftimeが認識する任意の書式文字列を指定できます
  • printf '%(dateFmt)T' -1#-1は現在の時刻を表します(引数がない場合のデフォルト)
  • printf '%(dateFmt)T' -2#-2は、シェルが呼び出された時刻を表します

備考

printf -v foo '%(...)T'を使ってprintf -v foo '%(...)T'foo=$(date +'...')と同じで、外部プログラムのdateへの呼び出しのためにforkを保存しdate

現在の日付を取得する

$ printf '%(%F)T\n'
2016-08-17

変数を現在の時刻に設定する

$ printf -v now '%(%T)T'
$ echo "$now"
12:42:47


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow