سلام.
یه برنامه از شرکت فارسیوب هست که تقریباً همین کار رو انجام میده.
http://fa.farsiweb.ir/fawiki/Iranian_Calendar
من سورس برنامه(به C) رو یه خورده ویرایش کردم(تا سال و ماه و روز رو بصورت عددی و مجزا چاپ کنه) بعد با gcc کامپایل کردم و همراه با سورسش آپلود کردم.
http://www.freefilespot.com/download...23029f463b54fb
حالا از اون فایل اجرایی باینری(به اسم مثلا jalali) میتونید توی shell استفاده کنید. از اونجایی که سال و ماه رو روز رو بصورت عدد و با یک فاصله چاپ میکنه. میتونید خروجیش رو بریزید توی یه آرایه، مثلاً اگه فایل اجرایی jalali توی دایرمتوری جاری باشه:
JD=(`./jalali`)
echo ${JD[0]}
echo ${JD[1]}
echo ${JD[2]}
یعنی میشه به هر کدوم(سال و ماه و روز) بصورت مجزا دسترسی پیدا کرد(مثلاً چاپ کرد). میشه تی هر متغیر دیگهای هم ریخت.
sal=${JD[0]}
mah=${JD[1]}
ruz=${JD[2]}
در ضمن اون برنامهٔ فارسیوب به چند زبان نوشته شده: C و PHP و JavaScript و #C و Tex
اما به زبان شل(bash یا sh) نوشته نشده. اگه میخواید cross platform باشه، مثلاً میتونید سورس برنامه به زبان PHP رو بردارید ویرایش کنید و استفاده کنید. در ضمن این برنامه فقط برای تاریخهای تا سال 2088 درست جواب میده.