فراخوانی اسکریپت

فصل 2. شروع با یک Sha-Bang

2.1- فراخوانی اسکریپت

با در اختیار داشتن اسکریپت نوشته شده، می‌توانید آن را توسط ‎sh scriptname‎‎[1]‎ یا به طور جایگزین با ‎bash scriptname‎ فراخوانی کنید. (استفاده از ‎sh  <scriptname توصیه نمی‌شود، چون این کار به طور موثر خواندن از ورودی استاندارد در داخل اسکریپت را غیرفعال می‌کند.) روش بسیار مناسب‌تر، مستقیماً قابل اجرا نمودن خود اسکریپت با فرمان chmod است.

یکی از موارد:

‎chmod 555 scriptname‎ (به همه مجوز خواندن و اجرا می‌دهد) ‎[2]‎

یا

‎chmod +rx scriptname‎ (مجوز خواندن و اجرا برای همه را اضافه می‌کند)

chmod u+rx scriptname (فقط به مالک اسکریپت اجازه خواندن و اجرا می‌دهد)

با قابل اجرا کردن اسکریپت، اکنون می‌توانید به وسیله ‎./scriptname‎ آن را آزمایش کنید. ‎[3]‎ اگر اسکریپت با یک سطر «sha-bang» شروع بشود، فراخوانی اسکریپت، مفسر فرمان صحیح جهت اجرای آن را احضار می‌کند.

به عنوان آخرین مرحله، بعد از تست کردن و اشکالزدایی شاید بخواهید به منظور قابل استفاده نمودن اسکریپت به صورت یک فایل قابل اجرا در گستره سیستم برای خودتان و سایر کاربران، آن را به ‎/usr/local/bin‎ منتقل کنید (البته به عنوان root). آنوقت اسکریپت می‌تواند به سادگی با تایپ کردن scriptname و ‎[ENTER]‎ در خط فرمان فراخوانی گردد.

یادداشت‌ها

‎[1]‎

احتیاط: احضار یک اسکریپت Bash به وسیله ‎sh scriptname‎ الحاقیه‌های مختص Bash را خاموش می‌کند، و بنابراین ممکن است اجرای اسکریپت ناموفق بشود.

‎[2]‎

یک اسکریپت برای اجرا شدن، علاوه بر مجوز اجرا، به مجوز خواندن هم احتیاج دارد، چون لازم است که پوسته قادر به خواندن آن باشد.

‎[3]‎

چرا اسکریپت به سادگی با scriptname احضار نمی‌شود؟ اگر آن دایرکتوری که شما در آن هستید ‎($PWD)‎ جایی است که scriptname قرار داده شده، چرا این دستور کار نمی‌کند؟ این کار بواسطه دلایل امنیتی ناموفق می‌گردد، دایرکتوری جاری (‎./‎) به طور پیش‌فرض به ‎$PATH‎ کاربر ضمیمه نمی‌شود. بنابراین ضروری است اسکریپت در دایرکتوری جاری به طور صریح با یک ‎./scriptname‎ فراخوانی بشود.