معرفی اسکرپیتنویسی در محیط Shell
همانطور که پیش از این گفتیم، Shell یک مفسر کامندلاینی است که فضایی در پنجرهٔ ترمینال ایجاد میکنند تا بتوان در آن کدنویسی کرده و به اجرای یکسری اسکرپیتها پرداخت؛ بهعنوان مثال، دستور زیر را در نظر بگیرید:
find . -name "*.c" -ls
خیلی با اینکه پس از تایپ کردن چنین دستوری در ترمینال چه اتفاقی رخ میدهد نداریم بلکه در اینجا صرفاً هدف این است که نشان دهیم اجرای دستور فوق در کامندلاین هیچ تفاوتی درعمل با اجرای فایلی اسکریپتی حاوی دستورات زیر ندارد:
#!/bin/bash find . -name "*.c" -ls
در اسکرپیت فوق، خط اول که با علامت !# شروع شده مسیر کامل مفسر (Interpreter) که در اینجا bin/bash/ است را مشخص میکند که برای اجرای این فایل قرار است مورد استفاده قرار گیرد.
گزینههای مفسر اسکریپتها برای محیط Shell
Command Interpreter (مفسر دستورات) این وظیفه را دارا است تا دستورات قرار گرفته در اسکرپیت مدنظر را اجرا کند؛ از جمله مفسرهای رایج در لینوکس برای اینکار میتوان به perl/bin/usr/ ،bash/bin/ ،csh/bin/ ،python/bin/usr/ و sh/bin/ اشاره کرد.
بهخاطر داشته باشیم که تایپ کردن لیست بلندبالایی از کامندها در ترمینال میتواند خستهکننده بوده و احتمال ضریب خطا را نیز بالا خواهد برد اما بااستفاده از شل بهسادگی خواهیم توانست اسکریپتهای طولانی که قرار است بارهاوبارها اجرا شوند را بهسادگی و بدون هیچ خطایی اجرا کنیم. در لینوکس طیف گستردهای از Shellها در اختیار کاربران قرار دارد که عبارتند از:
/bin/sh
/bin/bash
/bin/tcsh
/bin/csh
/bin/ksh
بسیاری از کاربران لینوکس از شلی تحتعنوان Bash استفاده میکنند اما همانطور که در تصویر زیر مشخص است، به غیر از بش، گزینههای دیگری نیز در اختیار کاربران لینوکس قرار دارد: