date +'%Y-%m-%d' -d "1 days ago `date +%Y%m01 -d '+(N+1) month'`"
date +%Y%m01 -d '+(N+1) month'
で (N+1)ヵ月先の初日が返ってきます。
1 days ago
でその1日前の日付 = 月末の日付を参照することになります。
例 1: 来月の末日を取得したい場合
date +'%Y-%m-%d' -d "1 days ago `date +%Y%m01 -d '+2 month'`"
例 2: 今月の末日を取得したい場合
date +'%Y-%m-%d' -d "1 days ago `date +%Y%m01 -d '+1 month'`"
実行するとスクリーンショットのようになります。
動作確認は下記OSで行っています。
- Debian jessie
- CentOS 6