راهنمای آموزشی اسکریپت نویسی - مقدماتی

لطفا برای بهتر دیدن صفحه از firefox استفاده کنید
Bash Guide for Beginners Machtelt Garrels

راهنمای Bash برای نوآموزان

برتری‌های Bourne Again SHell »
« ساخت بلوک‌ها

اجرای فرمان‌ها

کلیات

Bash نوع برنامه هایی که باید اجرا شوند را تعیین می‌کند. برنامه‌های معمولی فرمان‌های سیستم هستند که به شکل ترجمه شده در سیستم شما وجود دارند. وقتی چنین برنامه‌ای اجرا می‌شود، یک پردازش جدید تولید می‌شود، چون Bash یک کپی ازخودش می‌سازد. این پردازش فرزند همان محیط والدش را دارد، فقط شماره پردازش آن (ID) تفاوت خواهد داشت. این فرایند forking نامیده می‌شود.

بعد از فرایند انشعاب ، فضای آدرس دهی پردازش فرزند با داده‌های جدیدبازنویسی می‌شود. این از طریق یک فراخوان exec سیستم انجام می‌گردد.

مکانیسم ‎fork-and-exec‎ به این طریق یک فرمان قدیمی را با جدید تعویض می‌کند، در حالی‌که محیط در برنامه جدیدی که اجرا می‌شود باقی می‌ماند، ازجمله پیکربندی دستگاه‌های ورودی و خروجی، متغیر های محیط واولویت‌ها. این مکانیسم برای ایجاد تمام پردازش‌های یونیکس به کار می‌رود، وهمین‌طور درسیستم عامل لینوکس هم صدق می‌کند. حتی اولین پردازش، init ،با شماره پردازش ۱ ،درجریان پردازش بوت موسوم به پردازش bootstrapping منشعب می‌شود .

دستورات داخلی شل

دستورات داخلی بخشی از خود شل هستند. وقتی نام یک دستور داخلی به صورت اولین کلمه یک دستور ساده به کار می‌رود، شل دستور را مستقیماً بدون ایجاد پردازش جدید اجرا می‌کند. دستورات داخلی برای پیاده‌سازی قابلیت‌هایی، که فراهم نمودن آنها به صورت برنامه‌های جداگانه غیرممکن یا ناجور می‌باشند، ضروری هستند.

Bash سه نوع دستور داخلی را پشتیبانی می‌کند :

  • دستورات داخلی شل Bourne:

    :, ., break, cd, continue, eval, exec, exit, export, getopts, hash, pwd, readonly, return, set, shift, test, [, times, trap, umask و unset.

  • دستورات داخلی Bash :

    alias, bind, builtin, command, declare, echo, enable, help, let, local, logout, printf, read, shopt, type, typeset, ulimit و unalias.

  • دستورات داخلی ویژه:

    وقتی Bash در حالتPOSIX اجرامی‌شود، دستورات داخلی ویژه در سه مورد با سایر دستورات داخلی تفاوت دارند :

    1. دستورات داخلی ویژه، درضمن بازبینی قبل از توابع شناخته می‌شوند.

    2. اگر یک دستور داخلی ویژه یک خطای وضعیت ارسال کند، شل غیر محاوره‌ای خارج می‌شود .

    3. تأثیر جملات واگذاریی قبل از دستور، پس از انجام دستور، درمحیط شل باقی ‌می‌ماند.

    دستورات داخلی ویزه در POSIX عباتند از  :, ., break, continue, eval, exec, exit, export, readonly, return, set, shift, trap and unset.

اکثر این دستورات داخلی در فصل‌های بعد بحث خواهند شد .برای آن دستوراتی که این مورد در باره آن‌ها صادق نیست، به صفحه‌های info ارجاع می‌دهیم.

اجرای برنامه‌ها از داخل یک اسکریپت

وقتی برنامه‌ای که اجرا می‌شود یک شل اسکریپت باشد، bash یک پردازش bash جدید با استفاده از fork ایجاد می‌کند. این زیرپوسته سطرهای اسکریپت پوسته را به صورت هر دفعه یک سطر می‌خواند. دستورات هر سطر خوانده شده، همانگونه که اگر به طور مستقیم از صفحه کلید دریافت می‌شدند، تفسیر و اجرا می‌شوند.

در حالی‌که زیرپوسته سطرهای اسکریپت را پردازش می‌نماید ، شل والد منتظر تمام شدن پردازش فرزند می‌ماند. وقتی سطر دیگری برای خواندن در اسکریپت نباشد، زیرپوسته خاتمه می‌یابد. شل پدر بیدار می‌شود و یک اعلان فرمان نمایش می‌دهد .

برتری‌های Bourne Again SHell »
« ساخت بلوک‌ها
ترجمه محمود پهلوانی