توضیحات تکمیلی مربوط به مسابقه را در بلاگ Quera بخوانید: blog.quera.ir
میخواهیم یک برنامه ساده برای مدیریت 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 بنویسد:
نمونهای از عملکرد اسکریپت را در زیر میبینید:
task.sh
را آپلود کنید.