date → gdate
MacOS標準シェルzshのdateコマンドよりも
GNU系のdateコマンド(gdateコマンド)の方が気に入っている
$ which date
/bin/date
$ date
2021年 8月25日 水曜日 03時28分37秒 JST
このdateコマンドは次のようなGNU系dateコマンド(gdateコマンド)の作文ができない
$ date -d'10year 6month 3day 5hour 23minute 10second ago'
そこでgdateが使えるようにする
$ brew install coreutils
これによりglsやgdateのようなGNU版コマンドが100以上インストールされる
コマンドリストは次により確認できる
$ brew ls coreutils
ただgdateの標準出力が気にくわない
$ gdate
火 9 7 12:41:56 JST 2021
これはdateの出力のいいのでそれにあわせる
ついでに元号表示も工夫してみる
シェルスクリプト
.zprofile
に以下を追加
alias date="gdate +'%Y年%m月%d日%A%T'"
# 元号表示
function gendate()
{
y=$(gdate +'%Y')
r=$((y+1-2019))
h=$((y+1-1989))
s=$((y+1-1926))
t=$((y+1-1912))
m=$((y+1-1868))
n=$(gdate +'%Y年%m月%d日%A%T')
echo '令和'$r'年 平成'$h'年 昭和'$s'年 大正'$t'年 明治'$m'年 '$n
}
これで
$ date
2021年09月07日火曜日12:46:08
MacPro:~
$ date -d'10year 6month 3day 5hour 23minute 10second ago'
2032年03月10日水曜日18:09:05
MacPro:~
$ gendate
令和3年 平成33年 昭和96年 大正110年 明治154年 2021年09月07日火曜日12:46:19
これでOK