17. تمرینها
فقط یک تمرین سریع، من فکر میکنم،برای دانستن آنکه وضع شما در اسکریپتنویسی چطور است، تمرین دادن میتواند مفید باشد...
کتابچه آدرس
بسیار خوب، خسته کننده است، اما این تمرین امروز شماست:
با استفاده از sh یا Bash یک کتابچه آدرس درست کنید.
باید از توابع برای انجام وظایف لازمه استفاده کند.
دارای منو باشد، و به شما اجازه انتخاب گزینههای زیر را بدهد:
- جستجوی کتابچه آدرس
- افزودن مدخلها
- پاک کردن - ویرایش مدخلها
همچنین به یک تابع نمایش ، برای نمایش یک رکورد یا رکوردهای انتخابی، احتیاج دارید.
جستجو
وقتی کاربر برای "Smith" جستجو میکند، اسکریپت باید تمام رکوردهای "Smith" را مشخص کرده و نمایش دهد. به خودتان بستگی دارد که جستجو فقط در نام خانوادگی باشد، یا در تمام رکورد.افزودن
ورود داده( نام، نامخانوادگی، ایمیل، تلفن، وغیره ).اگر ورودی تکراری باشد،پیشنهاد ویرایش رکورد را ارائه کند.
ذخیره رکورد در یک فایل داده پس از تأیید کاربر.
پاک کردن
ثبت ضوابط جستجو، محدود کردن به یک مورد، تأیید، بعد حذف آن رکورد.ویرایش
همچنان که حذف انجام میشود، رکورد موجودبه عنوان پیشفرض ورودی استفاده شود.به عنوان مثال اگر شماره تلفن را تغییر میدهید،در صورتیکه فقط میخواهید شماره تلفن John Smith تغییر کند، نشست شما مشابه این دیده شود:
Name [ John Smith ] Phone [ 12345 ] 54321 Email [ joe@smith.org.uk ]حذف رکورد قدیمی، و افزودن رکورد جدید. به طور جایگزین، ویرایش رکورد موجود، گرچه شاید این قدری مشکلتر باشد.
گزینههای اضافی
- اجازه برای لغو گزینهها(استفاده از ورودیهای ویژه
(^d, CR, ^c, ... )
) - افزودن گزینه تأیید.
- پیشنهاد حالتهای محاورهای- غیر محاورهای. ( یعنی یک نگارش مبتنی بر منو و دیگری بر مبنای خط فرمان ).
- کار با getopt در نگارش CLI .
اشارهها - مواردی برای فکرکردن
- ساختار پیشنهادی رکوردها: از کولنها برای جداسازی فیلدها استفاده شود.
John Smith: 54321:john@smith.example.com
- روشی که بتوانید از "cut -d:" برای خواندن فیلدها استفاده کنید.
- در مورد استفاده از متغیر IFS به عنوان یک جایگزین برای این روش، فکر کنید.
- در مورد استفاده از فاصله (" ") برای جداسازی فیلدها، و تبدیل هر فاصلهای در ورودی به خطزیر ("_") ،فکر کنید. بعد برای نمایش، دوباره فاصلهها راجایگزین کنید.
یک پاسخ که من به آن رسیدم در این جا میباشد:
فایل اصلی
فایل کتابخانه
قبل از آن که خوب در موارد بالا تلاش نکردهاید، آن را نخوانید!
پیمایش دایرکتوریها
اسکریپت پوستهای برای حرکت در سرتاسر درخت فایل سیستم بنویسید.
جواب مثال در اینجاست:
مثال Steve Parker نوشته Bourne و Bash راهنمای آموزشی اسکریپت نویسی
ترجمه محمود پهلوانی
لطفاً برای بهتر دیدن صفحه از فایرفاکس استفاده کنید