【28.dateコマンド】ざっくりわかる「シェルスクリプト」

dateコマンド

現在の日付を解析する:
dateコマンドを使用して、現在のシステムの日付と時刻の値を取得することができます。日付と時刻は、「Y」、「m」、「d」、「H」、「M」、および「S」を使用します。‘date_parse.sh’という名前の新しいファイルを作成し、次のコードを追加して、日、月、年、時、分、秒の値を表示します。

#!/bin/bash

Year=`date +%Y`;
Month=`date +%m`;
Day=`date +%d`;
Hour=`date +%H`;
Minute=`date +%M`;
Second=`date +%S`;
echo `date`;
echo "Current Date is: $Day-$Month-$Year";
echo "Current Time is: $Hour:$Minute:$Second";

bashコマンドでファイルを実行します。

$ bash date_parse.sh
2022年 1月13日 木曜日 12時19分06秒 JST
Current Date is: 13-01-2022
Current Time is: 12:19:06
$
ヒント
dateコマンドは覚えるのではなく、manコマンドで都度、探しましょう。きりがないです。できる事を覚えておけばオッケーです。以下にありきたりなパターンを列挙しておきます。
$ date '+%Y/%m/%d'
2005/09/11

$ date '+%Y/%m/%d(%a)'
2005/09/11(Sun)

$ date '+%y/%m/%d'
05/09/11

$ date '+%F'
2005-09-11

$ date '+%D'
09/11/05

$ date '+%R'
01:18

$ date '+%T'
01:18:01

$ date '+%r'
01:18:06 AM

$ date '+%Y/%m/%d%n%r'
2005/09/11
01:18:27 AM
#↑%n を使用することで、出力に改行を含めることができる。

# 1日後
$ date -d '1 day'

# 2日後
$ date -d '2 days

# 1日前
$ date -d '1 day ago'

# 1ヶ月前
$ date -d '1 month ago'

# 1年前
$ date -d '1 year ago'

# 1時間前
$ date -d '1 hour ago'

# 1分前
$ date -d '1 minute ago'

# 1秒前
$ date -d '1 second ago'
$ IFSBK=${IFS} ; IFS=$'\n' ; for record in $(cat /var/log/messages ) ; do if [ $(( $(date +"%s") - 300 )) -lt $(echo ${record} | cut -d" " -f 1,2,3 | date --date="$(cat -)" +"%s") ] ; then echo ${record} ; fi ; done | grep error ; IFS=${IFSBK}

書籍の紹介

【27.mailコマンド】ざっくりわかる「シェルスクリプト」

【27.mailコマンド】ざっくりわかる「シェルスクリプト」

【29.waitコマンド】ざっくりわかる「シェルスクリプト」

【29.waitコマンド】ざっくりわかる「シェルスクリプト」