فهرست مطالب
ورودی و خروجی در اسکریپتهای Bash مبحث پیچیدهایست، زیرا انعطافپذیری بسیار زیادی در چگونگی انجام آن، وجود دارد. این فصل فقط یک ارائه سطحی از آنچه ممکن است، میباشد.
ورودی به هر اطلاعاتی که برنامه شما دریافت میکند(یا میخواند) اشاره مینماید. در یک اسکریپت Bash ورودی از چند محل مختلف میتواند برسد:
شناسههای خط فرمان(که در پارامترهای مکانی قرارگرفتهاند)
هر چیز دیگری که یک توصیفگر فایل میتواند به آن اشاره کند(لولهها،ترمینالها، سوکتها، و غیره). این موارد جلوتر بحث خواهند شد.
خروجی به هر اطلاعاتی که برنامه شما ارائه میکند(یا مینویسد) اشاره میکند. خروجی یک اسکریپت Bash نیز میتواند به چندین محل مختلف برود:
ورودی و خروجی، نان و پنیر اسکریپتنویسی پوسته هستند. معین کردن اینکه ورودی شما ازکجا میآید، چگونه به نظر میرسد، و شما برای بدست آوردن خروجی مطلوب خود، چه کاری باید روی آن انجام بدهید، هسته مرکزی احتیاجات تقریباً تمام اسکریپتها میباشند.
برای بسیاری از اسکریپتها، اولین(یا تنها) ورودی که به آن توجه مینماییم، شناسههایی میباشند که اسکریپت در خط فرمان دریافت نموده است. به طوری که در فصل پارامترها دیدیم، تعدادی پارامتر ویژه معتبر برای هر اسکریپت وجود دارد که، محتوی این شناسهها هستند. اینها پارامترهای مکانی نام دارند. این پارامترها یک آرایه خیلی ساده از رشتهها میباشند که با اعداد شاخصگذاری شدهاند(در حقیقت، در شل POSIX ، تنها آرایه موجود در شل هستند). به اولین پارامتر مکانی با
علاوه بر ارجاع یک به یک ، همچنین میتوانید به مجموعه کامل پارامترهای مکانی، با جایگزینی
یک روش دیگر کارکردن با پارامترهای مکانی، دور انداختن هر یک پس از استفاده است. یک دستور داخلی ویژهای به نام shift وجود دارد، که برای این منظور به کار میرود. موقعی که شما فرمان shift را صادر میکنید، اولین پارامتر مکانی (
در اسکریپتهای حقیقی، ترکیبی از این تکنیکها به کار میرود. یک حلقه برای پردازش
برای اختصار، در اینجا مثالهایی از پردازش شناسهها نمیآوریم. به جای آن، به FAQ جایی که مثالهای آنها قبلاً نوشته شده ارجاع میدهیم.
قبل از شروع به نوشتن، شناسایی کنید که ورودی برنامه شما از کجا میآید. اگر میخواهید اطلاعاتی را به اسکریپت خود ارسال کنید، روشی برای معنی کردن نوع اطلاعاتی که با آن سر و کار دارید، انتخاب نمایید. اگر احتیاج به ارسال نام فایلها دارید، ارسال آنها به صورت شناسهها، یک رویکرد عالی است، زیرا هر یک از آنها به صورت یک کلمه بستهبندی میگردد،.
چگونه میتوانم شناسههای( گزینههای ) خطفرمان را به آسانی مدیریت کنم؟