bash スクリプト 日付一覧を生成

次のようなファイルをbashスクリプトで作ってみました。
ファイルの中身は、日記の日付。日記は月毎にファイルしています。1日から末日までを一日一行で、当該年月分を一ファイルとして生成。
日記は2004年頃から付けており、当時はHP200LX・vzエディターを使用。vzにあったカンレンダーマクロの書式を継承。

例えば、2024年9月の書式

* 2024.09.01(Sun) bp
* 2024.09.02(Mon) bp
   .
   .
   .
* 2024.09.30(Mon) bp 


d2409.org
に出力します。
今使用しているエディターは、emacs・orgモード。* は、markdown記法によるタイトル行、最後のBPは血圧。この二項はemacsで書き始めた時から追加した項目。

処理の目的は、bashで

./スクリプト名 yy mm

に対し
dyymm.org
を生成すること。

今までは、手動でやってきましたが、スクリプト化してみました。
OSXとwin11・wls2を作りました。OSXはdateコマンドをgdateに書き換えるだけです(gdateのインストが必要)。

作成にあたってのポイント
1.既存ファイルへの上書き禁止。折角書いた日記を、年月の入力ミスでリセットしまうリスクを回避。
2.月の日数取得はcalとawkで対応、閏年処理はcalにおまかせ。

以下、スクリプト(win11・wls2)です。

#!/bin/bash

LANG=C
year=$1
month=$2
month2=$(printf "%02d\n" "$month")  #月を二桁表記 file名をyymmにするため
year4=$((2000+$year))               #西暦を4桁表記 calパラメータに必要

# 当該月の最終日をdaysに格納
days=$(cal $month $year4 | awk 'NF {days=$NF};END{print days}')

# ダイヤリー名 dyymm.org をnameに格納 emacs orgモード
name=d$year$month2".org"

# 上書き防止策 dyymm.orgのファイルが存在していれば、file生成はしない
if [ -f ./$name ]
then
echo "${name} は存在します。"
else
# dyymm.org を生成
touch $name

# 一行目におまじないを記入
# こうしておかないとOSX orgモードではfileオープン時に展開されてしまうため
echo "#+STARTUP: fold">$name

# 本体 入力した年(西暦下二桁)月の一行一日のdiaryを生成
for day in `seq 1 $days`;do date -d $year4/$month/$day +"* %Y.%m.%d(%a) bp ";done >> $name

# 生成diaryの中身確認
cat $name
fi