句読点なしで現在の日付と時刻を表示する


118

たとえば、現在の日付と時刻を次の形式で表示したいとします。

yyyymmddhhmmss 

それ、どうやったら出来るの?ほとんどの日付形式が付属していますように思える-/:など、

回答:


170

どうぞ:

date +%Y%m%d%H%M%S

man dateトップの近くに言う、あなたが使用することができdate、このようなコマンドを:

date [OPTION]... [+FORMAT]

つまり、で始まるフォーマットパラメータを指定できます+。おそらく、私が使用したフォーマット記号の意味を推測できます。

  • %Y 年間です
  • %m 月間です
  • %d 日のためです
  • ... 等々

これとその他のフォーマット記号はにありman dateます。


36

シェルスクリプトの簡単な例

#!/bin/bash

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;

句読点なしの形式:-+%Y%m%d%H%M%S
句読点あり:-+%Y-%m-%d%H:%M:%S


2
"`date +%Y-%m-%d %H:%M:%S`"私にdate: illegal time format
-Sinuxの

6

Bashを使用している場合は、次のコマンドのいずれかを使用することもできます。

printf '%(%Y%m%d%H%M%S)T'       # prints the current time
printf '%(%Y%m%d%H%M%S)T' -1    # same as above
printf '%(%Y%m%d%H%M%S)T' -2    # prints the time the shell was invoked

オプション-v varnameを使用して、$varname標準出力に出力する代わりに結果を保存できます。

printf -v varname '%(%Y%m%d%H%M%S)T'

dateコマンドは常にサブシェル(つまり、別のプロセス)で実行されますが、printfは組み込みコマンドであるため、より高速です。


%渡すことができるオプションに関する詳細なドキュメントを探している人にとって、これはdateコマンドを使用しているようです。したがって、man date利用可能なオプションが表示されます。
Electrovir

4

句読点なし(@Burusothmanが言及したとおり):

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;

O / P:

20170115072120

句読点あり

current_date_time="`date "+%Y-%m-%d %H:%M:%S"`";
echo $current_date_time;

O / P:

2017-01-15 07:25:33

0

パラメータ展開を使用してこれを行う興味深い/面白い方法(必須bash 4.4またはそれ以降):

${parameter@operator} - P operator

展開は、プロンプト文字列であるかのようにパラメーターの値を展開した結果の文字列です。

$ show_time() { local format='\D{%Y%m%d%H%M%S}'; echo "${format@P}"; }
$ show_time
20180724003251
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.