箱のプログラミング日記。

えんじにあ奮闘記

bashでdateコマンドのフォーマットを指定する

f:id:y_hakoiri:20191102121618j:plain

最近bashで色々試してみるのにハマっている。

$ date
2021年 4月 4日 日曜日 16時43分52秒 JST

dateコマンドは現在時刻を表示する。

フォーマットを指定したいときは

$ date +'%Y%m%d%H%M%S'
20210404191221
$ date +'%Y/%m/%d %T'
2021/04/04 19:14:18

引数に+とフォーマットを渡す。

その他フォーマットについては下記参照

日付を取得する | UNIX & Linux コマンド・シェルスクリプト リファレンス

変数に代入してみる

$ cat date_test.sh
#!/bin/bash
DATE=date +'%Y%m%d%H%M%S'
echo "date is ${DATE}"
$ sh date_test.sh
date_test.sh: line 2: +%Y%m%d%H%M%S: command not found
date is

エラーになった。

バッククオートで囲まないといけなかった

date_test.sh

#!/bin/bash
DATE=`date +'%Y%m%d%H%M%S'`
echo "date is ${DATE}"
$ sh date_test.sh
date is 20210404191952

ちゃんと値が返ってきました。

参考

日付を取得する | UNIX & Linux コマンド・シェルスクリプト リファレンス

Bashの便利な構文だがよく忘れてしまうものの備忘録 - Qiita