میخواهیم یک برنامه ساده برای مدیریت task بنویسیم.
برای این کار از شما میخواهیم یک اسکریپت Bash با نام task.sh
بنویسید. میتوانید با پیادهسازی بخشی از خواستهها،
بخشی از نمره را بگیرید.
جزئیات
هر task یکی از ۳ اولویت پایین (L)، متوسط (M) و بالا (H) را دارد.
لیست task ها در فایل متنی tasks.txt
ذخیره میشود.
ممکن است هنگام اجرا، این فایل وجود نداشته باشد. در این صورت
برنامه شما باید آن را ایجاد کند.
در هر سطر از این فایل یک task به این صورت ذخیره میشود:
ابتدا اولویت (یکی از حروف H, M, L
)، سپس یک کاراکتر فاصله و سپس
عنوان task میآید.
شماره task ها بر اساس ترتیب آنها در این فایل مشخص میشود. اولین سطر این فایل task شماره ۱ است.
یک مثال:
اسکریپت باید توانایی اجرای دستورات add, list, done
را به صورت زیر داشته باشد:
در ادامه توضیح دقیق هریک از این دستورات آمده است. در انتهای متن نیز مثالی آمده که همه چیز را روشنتر میکند.
دستور add
این دستور، task با عنوان دادهشده را به انتهای لیست اضافه میکند.
در صورتی که در انتهای عنوان، عبارت (important)
یا (very important)
باشد
(بدون توجه به بزرگی و کوچکی حروف)،
اولویت به ترتیب M
و H
خواهد بود. در غیر این صورت اولویت L
است.
پس از اضافه کردن، باید پیام زیر در خروجی استاندارد نوشته شود:
دستور list
این دستور لیست task ها را مانند مثالهای زیر نمایش میدهد.
برای اولویت پایین، ۱ ستاره، برای اولویت متوسط ۳ ستاره و برای اولویت بالا ۵ ستاره نمایش داده میشود. به فاصلههای هر خط توجه کنید.
در صورت خالی بودن لیست، عبارت No tasks found...
را در خروجی استاندارد بنویسید.
دستور done
این دستور task با شمارهی داده شده را حذف میکند و پیام زیر را در خروجی استاندارد مینویسد:
پیامهای خطا
در صورتی که دستوری به جز دستورهای بالا داده شد، برنامه باید با کد ۱ خارج شود و پیام خطای زیر را در stderr بنویسد:
همچنین اگر در ادامهی دستورهای add
و done
هیچ آرگومانی داده نشد،
برنامه باید با کد ۱ خارج شود و این پیام را در stderr بنویسد:
مثال
نمونهای از عملکرد اسکریپت را در زیر میبینید:
نکات
- یک فایل Zip شامل اسکریپت
task.sh
را آپلود کنید.
ارسال پاسخ برای این سؤال