先月の最終日をcshで取得するにはどうすればよいですか?
これがこれまでのコードです。以下のcalコマンドは、(FreeBSD sh)コマンドラインから実行するとほとんど機能しますが、スクリプト内で実行するために適切にエスケープするのに問題があります。ほぼ仕事とは、2010年2月の最終日が28のときに31を返すことを意味します。
#!/bin/csh
set lastdayoflastmonth=`cal `date '+%m'` `date '+%Y'` | grep . | fmt -1 | tail -1`
echo $lastdayoflastmonth
明確にするために:
今日が2010年3月26日の場合、2010年2月の最終日である28という数字を返す必要があります。
今日が2010年7月1日の場合、2010年6月の最終日である30という数字を返す必要があります。
更新:以下のコメントでジョシュア・スミスから受け取った実用的な回答:date -v31d -v-1m '+%d'
ありがとう!