برای نوشتن یک اسکریپت به طور موفقیتآمیز، شما باید سه مورد را انجام بدهید:
یک اسکریپت پوسته فایلی است که شامل متن ASCII است. برای ایجاد اسکریپت پوسته، شما یک
نام |
|
رابط کاربر |
پدر بزرگ ویرایشگرهای متن یونیکس، vi، برای دشواری و ساختار فرمان غیر مستقیم خود بدنام است. در جهت مثبت، vi قدرتمند، سبک، و سریع است. آموختن vi یک مرحله سرنوشتساز در یونیکس است، چون به طور فراگیر در سیستمهای بر مبنای یونیکس در دسترس است. در بیشتر توزیعهای لینوکس، یک نگارش توسعهیافته ویرایشگر vi به نام vim استفاده میشود. |
خط فرمان |
|
Emacs |
غول واقعی دنیای ویرایشگرهای متن، ویرایشگر Emacs نوشته Richard Stallman است. Emacs شامل هر ویژگی تا به حال طرح شده برای یک ویرایشگر متن است (یا میتواند برای این شمول آماده بشود) . باید اشاره شود که دوستداران vi و Emacs در مورد برتری هر کدام، با کشمکشهای تند و تیز و طعنهآمیزی با یکدیگر جدال میکنند. |
خط فرمان |
nano یک ویرایشگر متن آزادِ همزاد برنامه پست الکترونیکی pine است. استفاده از nano بسیار آسان اما ویژگیهای آن بسیار اندک است. من nano را به کاربران تازه کاری که به یک ویرایشگر خط فرمان نیاز دارند پیشنهاد میکنم. |
خط فرمان |
|
gedit ویرایشگر عرضه شده با محیط میزکار گنوم است. |
گرافیکی |
|
kwrite |
kwrite یک ویرایشگر توسعه یافته ارایه شده با KDE است. از highlighting (برجسته سازیِ) ترکیب دستوری، یعنی یک ویژگی سودمند برای برنامهنویسان و نویسندگان اسکریپت برخوردار است. |
گرافیکی |
اکنون، ویرایشگر متن را روشن کنید و اولین اسکریپت خود به شرح زیر را در آن تایپ کنید:
#!/bin/bash # My first script echo "Hello World!"
افراد زیرک از میان شما کشف خواهند نمود که چطور متن را کپی و در ویرایشگر متن خود بچسبانند
اگر شما اصلاً یک کتاب برنامهنویسی را باز کرده باشید فوری تشخیص خواهید داد که این یک برنامه سنتی «Hello World» است. فایلتان را با یک نام توصیفی ذخیره کنید. hello_world چطور است؟
اولین سطر اسکریپت مهم است. این یک راهنمای ارایه شده به پوسته به نام
سطر دوم یک
مورد بعدی که ما باید انجام بدهیم دادن مجوز اجرا به اسکریپت شما است. این کار به شکل زیر با فرمان chmod انجام میشود:
[me@linuxbox me]$ chmod 755 hello_world
«755» مجوز خواندن، نوشتن، و اجرا به شما خواهد داد. هر فرد دیگر نیز فقط مجوز خواندن و اجرا به دست خواهد آورد. اگر شما میخواهید اسکریپت شما خصوصی باشد (یعنی، فقط شما بتوانید بخوانید و اجرا کنید)، به جای آن از «700» استفاده کنید.
در این وضعیت، اسکریپت اجرا خواهد شد. این را امتحان کنید:
[me@linuxbox me]$ ./hello_world
شما باید
قبل از اینکه جلوتر برویم، من باید توقف کرده و مقداری در باره pathها صحبت کنم. هنگامی که شما نام یک فرمان را تایپ میکنید، سیستم تمام کامپیوتر را برای پیدا کردن جایی که برنامه قرار داده میشود جستجو نمیکند. این کار خیلی زمان میبرد. شما توجه نمودهاید که معمولاً نباید نام مسیر کامل برنامهای را که میخواهید اجرا کنید، وارد نمایید، به نظر میرسد پوسته آگاه است.
خُب، حق با شماست. پوسته میداند. چگونگی آن اینجاست: پوسته فهرستی از دایرکتوریهایی که فایلهای قابل اجرا (برنامهها) در آنها قرار داده شدهاند، نگهداری میکند، و فقط دایرکتوریهای داخل آن فهرست را جستجو میکند. اگر بعد از جستجوی هر دایرکتوری موجود در آن فهرست برنامه را پیدا نکند، پیغام خطای مشهور command not found را صادر میکند.
این فهرست دایرکتوریها path شما نامیده میشود. شما میتوانید لیست دایرکتوریهای آن را با فرمان زیر مشاهده کنید:
[me@linuxbox me]$ echo $PATH
این فرمان فهرست جداشده با کاراکتر کولن(
شما میتوانید دایرکتوریها را با فرمان زیر به
[me@linuxbox me]$ export PATH=$PATH:directory
یک روش بهتر ویرایش کردن فایل
اکثر توزیعهای لینوکس رویهای را تشویق میکنند که در آن هر کاربر یک دایرکتوری برای برنامههای مورد استفاده شخصیاش دارد.
این دایرکتوری
[me@linuxbox me]$ mkdir bin
اسکریپتتان را به دایرکتوری جدید bin خود انتقال بدهید و شما آماده هستید. اکنون فقط باید تایپ کنید:
[me@linuxbox me]$ hello_world
و اسکریپت شما اجرا خواهد شد. در برخی توزیعها، به طور قابل ذکر در Ubuntu، لازم است قبل از اینکه دایرکتوری