bash 変数に日付を入れる方法

記事内に商品プロモーションを含む場合があります。
2018.4.17 4054 views

まずはコマンドラインで試してみる

下記のコマンドを実行することで、変数「today」に YYYYMMDD の形式で日付文字列が格納され、格納された変数の中身が echo によって表示されます。

ポイントは、バッククオートを付与することで、コマンドの実行結果を文字列で変数に代入できるようになります。

date “+(フォーマット)“で「+」を付けてフォーマットを指定することで、任意の形式で日付データを表示できるようになります。

today=`date "+%Y%m%d"`
echo ${today}

実行すると下記のように表示されます。

20180407

シェルとして実行してみる

実際にシェルスクリプトとして実行してみたいと思います。

vi で作成したファイル名を指定して起動します。

vi hello.sh

内容は下記のように記載します。

#! /bin/bash
today=`date "+%Y%m%d"`
echo "hello" > ${today}.txt

このままでは実行できませんので、実行権限を付与します。

chmod 755 hello.sh

実行します。

./hello.sh

実行すると、日付が付与されたファイルが作成され、内容に"hello"と書かれています。

まとめ

日々のバックアップやログの移動など、ファイルに日付を付与したいシーンは割とよくあると思います。

この方法を使うことで、ファイルやディレクトリに日付を付与するのが、楽になります。