گام اول در نوشتن اسکریپت ساده
توسط royaflash دذ ۳ آذر, ۱۳۹۵ دذ ۰۹:۳۴ قبل از ظهر | دسته‌بندی شده در shell, خط فرمان, گنو/لینوکس | با ۰ دیدگاه |423 views

نوشتن اولین اسکریپت شما و آماده کار نمودن آن

برای نوشتن یک اسکریپت به طور موفقیت‌آمیز، شما باید سه مورد را انجام بدهید:

  1. یک اسکریپت بنویسید
  2. مجوز اجرای پوسته به آن بدهید
  3. آن را جایی قرار بدهید که پوسته بتواند پیدایش کند

نوشتن یک اسکریپت

یک اسکریپت پوسته فایلی است که شامل متن ASCII است. برای ایجاد اسکریپت پوسته، شما یک ویرایشگر متن را به کار می‌برید. یک ویرایشگر متن برنامه‌ایست، مانند پردازشگر کلمه، که فایلهای متن ASCII را می‌خواند و می‌نویسد. ویرایشگرهای متن خیلی زیادی برای سیستم لینوکس شما در دسترس هستند، هم برای محیط خط فرمان و هم برای محیط رابط گرافیکی کاربر. در اینجا فهرستی از برخی موارد رایج آمده است:

نام
توضیحات
رابط کاربر
vi, vim پدر بزرگ ویرایشگرهای متن یونیکس، vi، برای دشواری و ساختار فرمان غیر مستقیم خود بدنام است. در جهت مثبت، vi قدرتمند، سبک، و سریع است. آموختن vi یک مرحله سرنوشت‌ساز در یونیکس است، چون به طور فراگیر در سیستم‌های بر مبنای یونیکس در دسترس است. در بیشتر توزیع‌های لینوکس، یک نگارش توسعه‌یافته ویرایشگر vi به نام vim استفاده می‌شود. خط فرمان
Emacs غول واقعی دنیای ویرایشگرهای متن، ویرایشگر Emacs نوشته Richard Stallman است. Emacs شامل هر ویژگی تا به حال طرح شده برای یک ویرایشگر متن است (یا می‌تواند برای این شمول آماده بشود) . باید اشاره شود که دوستداران vi و Emacs در مورد برتری هر کدام، با کشمکش‌های تند و تیز و طعنه‌آمیزی با یکدیگر جدال می‌کنند. خط فرمان
nano nano یک ویرایشگر متن آزادِ همزاد برنامه پست الکترونیکی pine است. استفاده از nano بسیار آسان اما ویژگی‌های آن بسیار اندک است. من nanoرا به کاربران تازه کاری که به یک ویرایشگر خط فرمان نیاز دارند پیشنهاد می‌کنم. خط فرمان
gedit gedit ویرایشگر عرضه شده با محیط میزکار گنوم است. گرافیکی
kwrite kwrite یک ویرایشگر توسعه یافته ارایه شده با KDE است. از highlighting (برجسته سازیِ) ترکیب دستوری، یعنی یک ویژگی سودمند برای برنامه‌نویسان و نویسندگان اسکریپت برخوردار است. گرافیکی

اکنون، ویرایشگر متن را روشن کنید و اولین اسکریپت خود به شرح زیر را در آن تایپ کنید:

#!/bin/bash
# My first script

echo "Hello World!"

افراد زیرک از میان شما کشف خواهند نمود که چطور متن را کپی و در ویرایشگر متن خود بچسبانند  گام اول در نوشتن اسکریپت ساده

اگر شما اصلاً یک کتاب برنامه‌نویسی را باز کرده باشید فوری تشخیص خواهید داد که این یک برنامه سنتی «Hello World» است. فایل‌تان را با یک نام توصیفی ذخیره کنید. hello_world چطور است؟

اولین سطر اسکریپت مهم است. این یک راهنمای ارایه شده به پوسته به نام shebang است، که نشان می‌دهد کدام برنامه باید برای تفسیر اسکریپت استفاده شود. در این حالت، برنامه ‎/bin/bash‎ است. سایر زبانهای اسکریپتی از قبیل ‏Perl، ‏awk، ‏tcl، ‏Tk، و python نیز از این ساز و کار استفاده می‌کنند.

سطر دوم یک توضیح است. هر چیزی که بعد از یک نشانه # ظاهر بشود به وسیله bash نادیده گرفته می‌شود. هنگامیکه اسکریپت شما بزرگتر و پیچیده‌تر می‌گردد، توضیحات ضروری می‌شوند. آنها توسط برنامه‌نویسان برای روشن کردن آنچه پیش می‌رود و برای اینکه دیگران بتوانند آن را بفهمند، به کار می‌روند. آخرین سطر فرمان echoاست. این فرمان به سادگی شناسه‌هایش را در نمایشگر چاپ می‌کند.

تنظیم مجوزها

مورد بعدی که ما باید انجام بدهیم دادن مجوز اجرا به اسکریپت شما است. این کار به شکل زیر با فرمان chmod انجام می‌شود:

[[email protected] me]$ chmod 755 hello_world

«۷۵۵» مجوز خواندن، نوشتن، و اجرا به شما خواهد داد. هر فرد دیگر نیز فقط مجوز خواندن و اجرا به دست خواهد آورد. اگر شما می‌خواهید اسکریپت شما خصوصی باشد (یعنی، فقط شما بتوانید بخوانید و اجرا کنید)، به جای آن از «۷۰۰» استفاده کنید.

قرار دادن آن در Path شما

در این وضعیت، اسکریپت اجرا خواهد شد. این را امتحان کنید:

[[email protected] me]$ ./hello_world

شما باید ‎Hello World!‎ نمایش یافته را مشاهده کنید. در صورتیکه چنین نیست، ببینید واقعاً اسکریپت خود را در کدام دایرکتوری ذخیره نموده‌اید، آنجا بروید و دوباره امتحان کنید.

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

خُب، حق با شماست. پوسته می‌داند. چگونگی آن اینجاست: پوسته فهرستی از دایرکتوری‌هایی که فایلهای قابل اجرا (برنامه‌ها) در آنها قرار داده شده‌اند، نگهداری می‌کند، و فقط دایرکتوری‌های داخل آن فهرست را جستجو می‌کند. اگر بعد از جستجوی هر دایرکتوری موجود در آن فهرست برنامه را پیدا نکند، پیغام خطای مشهورcommand not found را صادر می‌کند.

این فهرست دایرکتوری‌ها path شما نامیده می‌شود. شما می‌توانید لیست دایرکتوری‌های آن را با فرمان زیر مشاهده کنید:

[[email protected] me]$ echo $PATH

این فرمان فهرست جداشده با کاراکتر کولن(:) دایرکتوری‌هایی را برگشت می‌دهد که اگر موقع صدور فرمان، نام مسیرِ معینی ارایه نشده باشد، جستجو خواهند شد. ما در اولین کوشش خود برای اجرای اسکریپت شما، یک نام مسیر ‎(./)‎ برای فایل مشخص نمودیم.

شما می‌توانید دایرکتوری‌ها را با فرمان زیر به path خود اضافه کنید، که در آن directory نام آن دایرکتوری است که شما می‌خواهید اضافه شود:

[[email protected] me]$ export PATH=$PATH:directory

یک روش بهتر ویرایش کردن فایل ‎.bash_profile‎ یا ‎.profile‎ شما (نسبت به توزیع شما) برای پیوست کردن فرمان فوق است. به آن طریق، هر بار که شما به سیستم وارد می‌شوید این دایرکتوری به طور خودکار به path اضافه می‌شود.

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

[[email protected] me]$ mkdir bin

اسکریپت‌تان را به دایرکتوری جدید bin خود انتقال بدهید و شما آماده هستید. اکنون فقط باید تایپ کنید:

[[email protected] me]$ hello_world

و اسکریپت شما اجرا خواهد شد. در برخی توزیع‌ها، به طور قابل ذکر در Ubuntu، لازم است قبل از اینکه دایرکتوری bin ایجاد شده جدید شما شناسایی بشود، یک نشست جدیدِ ترمینال باز کنید.

درباره - یاشار اسمعیل دخت هستم ۲۷ سالمه (به دنیال یافتم آنم که کیستم)به صورت ۱۰۰٪ به گنو/لینوکس مهاجرت کردم . من رو با نام royaflash میشناسید . در زمینه شبکه و امنیت شبکه فعالیت میکنم . لینوکس همیشه چیزی برای یادگیری داره و لینوکس یه فرهنگه . در صورت نیاز میتونین با آدرس ایمیل : [email protected] یا شماره تلفن : 09141100257 در ارتباط باشید . وبلاگ شخصی من (-:) درباره من

فرستادن یک دیدگاه

XHTML: شما می‌توانید از این برچسب‌ها استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>