どの UNIX でも ccyymmdd 形式で date を取得2014年07月19日 12時12分58秒

特に Solaris に入っている date が古くて、どのプラットフォームでも動くシェルスクリプトを書くのには気をつかう。Linux などは、/bin/sh といっても現実は bash であり、FreeBSD も ash、AIX などは ksh になっている。Solaris の sh は本当に最古参の物なので、変数を export する時にはしっかり改行しないといけなかったりする程。特に苦手だったのは date の出力の統一。

やっと一番好きな書式をどこでも出せるものを知った。


% date "+%Y%m%d"

で、四桁の西暦、二桁ずつの月日が出せる。

まずは、Solaris から、順次アクセス出来るプラットフォームで。


Solaris % /usr/bin/date "+%Y%m%d"
20140718
Solaris % /usr/xpg4/bin/date "+%Y%m%d"
20140718
AIX % date "+%Y%m%d"
20140718
FreeBSD % date "+%Y%m%d"
20140718
Liunx % date "+%Y%m%d"
20140718