راهنماهای زیادی در اینترنت وجود دارد که نشان می دهد چگونه اسکریپت های Shell را با استفاده از BASH ایجاد می کنند و این راهنما با هدف چرخش کمی متفاوت است؛ زیرا توسط شخص دیگری که دارای تجربه اسکریپت پوسته بسیار کم است نوشته شده است.
اکنون ممکن است فکر کنید که این یک ایده احمقانه است، اما متوجه شدم که برخی راهنماها با شما صحبت می کنند، مثل اینکه شما قبلا یک متخصص هستید و راهنمایی های دیگر برای رسیدن به تعقیب بسیار طول می کشد.
در حالی که تجربه اسکریپت پوسته LINUX / UNIX من محدود است، من از طریق تجارت یک توسعه دهنده نرم افزاری هستم و در زبان های برنامه نویسی مانند PERL، PHP و VBScript، زبان برنامه نویس هستم.
نقطه این راهنما این است که یاد خواهید گرفت که من یاد بگیرم و هرگونه اطلاعاتی را که برداشت میکنم به شما منتقل خواهم کرد.
شروع شدن
بدیهی است که بسیاری از نظریه ها وجود دارد که می توانم بلافاصله به شما بگویم مانند توصیف انواع پوسته و مزایای استفاده از BASH بر KSH و CSH.
اکثر مردم هنگام یادگیری چیزی جدید می خواهند در ابتدا و با برخی از درس های عملی شروع به کار کنند و با آن در ذهن داشته باشم نمی خواهم شما را با چیزهای بی اهمیتی که مهم نیست در حال حاضر.
همه چیزهایی که برای دنبال کردن این راهنما نیاز دارید، یک ویرایشگر متن و یک ترمینال است که BASH را اجرا می کند (پوسته پیش فرض در بیشتر توزیع های لینوکس).
ویراستاران متن
راهنماهای دیگر که خواندید پیشنهاد کرده اند که شما نیاز به یک ویرایشگر متن دارید که شامل کدگذاری رنگ دستورات است و ویراستاران توصیه شده یا VIM یا EMACS هستند .
برنامه نویسی رنگ بسیار خوب است زیرا دستورات را به عنوان آنها را تایپ می کند اما برای مبتدی مطلق می توانید چند هفته اول یادگیری VIM و EMACS را بدون نوشتن یک خط کد انجام دهید.
من از EMACS ترجیح می دهم اما صادقانه تر از من ترجیح می دهم از یک ویرایشگر ساده مانند nano ، gedit یا leafpad استفاده کنم.
اگر اسکریپت خود را در رایانه خود بنویسید و می دانید که همیشه به یک محیط گرافیکی دسترسی خواهید داشت، می توانید ویرایشگر را که برای شما مناسب تر است را انتخاب کنید و می توانید گرافیکی مانند GEdit یا یک ویرایشگر که در ترمینال مستقیم اجرا می شود مانند نانو یا VIM.
برای اهداف این راهنما، از nano استفاده خواهم کرد زیرا آن را در اکثر توزیعهای لینوکس نصب می کند و احتمالا شما به آن دسترسی خواهید داشت.
افتتاح یک پنجره ترمینال
اگر از توزیع لینوکس با دسک تاپ گرافیکی مثل لینوکس مینت و اوبونتو استفاده می کنید، می توانید یک پنجره ترمینال را با فشار دادن CTRL + ALT + T باز کنید.
از کجا اسکریپت های شما قرار می گیرد
برای اهداف این آموزش، شما می توانید اسکریپت های خود را در یک پوشه در زیر پوشه خانه خود قرار دهید.
در یک پنجره ترمینال، با تایپ کردن دستور زیر، اطمینان حاصل کنید که در پوشه خانه خود هستید:
cd ~دستور cd برای دایرکتوری تغییر می کند و tilde (~) یک میانبر برای پوشه خانه شما است.
شما می توانید با تایپ کردن دستور زیر در محل درست خود چک کنید:
pwdدستور pwd به شما دایرکتوری فعلی شما (که در آن در درخت دایرکتوری قرار دارد) به شما می گوید. در مورد من آن را بازگشت / خانه / گری.
در حال حاضر بدیهی است که شما نمی خواهید اسکریپت های خود را مستقیما در پوشه خانه قرار دهید تا یک پوشه به نام اسکریپت با تایپ کردن دستور زیر ایجاد کنید.
اسکریپت mkdirبا تایپ کردن دستور زیر به پوشه اسکریپت جدید تغییر دهید:
اسکریپت سی دیاسکریپت اول شما
معمولا هنگام یادگیری برنامه ریزی، برنامه اول را به سادگی کلمات "Hello World" را صادر می کنید.
از داخل پوشه اسکریپتهای خود، دستور زیر را وارد کنید:
nano helloworld.shحالا کد زیر را در پنجره نانو وارد کنید.
#! / bin / bash echo "سلام جهان"CTRL + O را فشار دهید تا فایل را ذخیره و CTRL + X برای خروج از نانو.
این اسکریپت به صورت زیر است:
#! / bin / bash باید در بالای تمام اسکریپتهایی که شما نوشتید قرار داشته باشد، به این ترتیب که اجازه می دهد مترجمان و سیستم عامل بدانند چگونه فایل را اداره کنند. در واقع فقط به یاد داشته باشید که آن را قرار دهید و فراموش کنید که چرا این کار را انجام می دهید.
خط دوم دارای یک فرمان واحد به نام echo است که متن را که بلافاصله آن را دنبال می کند، خروجی می دهد.
توجه داشته باشید که اگر می خواهید بیش از یک کلمه نمایش داده شود، شما باید از کلمات دوگانه (") در اطراف کلمات استفاده کنید.
اکنون میتوانید با تایپ کردن دستور زیر، اسکریپت را اجرا کنید:
sh helloworld.shکلمات "سلام جهان" باید ظاهر شوند.
راه دیگر برای اجرای اسکریپت ها به شرح زیر است:
./helloworld.shشانس این است که اگر این دستور را در ترمینال خود بلافاصله اجرا کنید، یک خطای مجوز دریافت خواهید کرد.
برای اعطای مجوز به اجرای اسکریپت به این ترتیب زیر را تایپ کنید:
sudo chmod + x helloworld.shپس چه اتفاقی افتاد؟ چرا شما قادر به اجرای sh helloworld.sh بدون تغییر مجوز بودید اما اجرای ./helloworld.sh موجب ایجاد یک مشکل شد؟
اولین روش، مترجم bash را بارگذاری می کند که helloworld.sh را به عنوان یک ورودی می گیرد و کار با آن را انجام می دهد. مترجم bash قبلا دارای مجوز برای اجرای است و فقط نیاز به اجرای دستورات در اسکریپت دارد.
روش دوم به سیستم عامل اجازه می دهد تا با اسکریپت کار کند و به همین دلیل برای اجرا نیاز به یک بیت اجرایی دارد.
اسکریپت فوق العاده خوب بود، اما اگر شما می خواهید علامت نقل قول را نمایش دهید، چه اتفاقی می افتد؟
راه های مختلفی برای دستیابی به این هدف وجود دارد. برای مثال شما می توانید قبل از علامت نقل قول به صورت زیر بکشید:
اکو \ "سلام جهان \"این خروجی "سلام جهان" را تولید می کند.
یک لحظه منتظر بمانید، اگر می خواهید \ "سلام جهان \" را نمایش دهید؟
خوب شما می توانید از شخصیت های فرار نیز فرار کنید
echo \\ "\" سلام جهان \\ "\"این خروجی \ "سلام جهان \" را تولید خواهد کرد.
حالا من می دانم که چه فکر می کنید اما من واقعا می خواهم \\ "\" سلام جهان \\ "\"
با استفاده از echo با تمام این شخصیت های فرار می توانید کاملا احمقانه باشید. یک دستور جایگزین وجود دارد که شما می توانید از آن به نام printf استفاده کنید.
مثلا:
printf '٪ s \ n' '\\ "\" سلام جهان \\ "\"'توجه داشته باشید که متن که میخواهیم نمایش داده شود بین یک نقل قول است. دستور printf متن را از اسکریپت شما خارج می کند. ٪ s به این معنی است که یک رشته نمایش داده می شود، \ n خروجی یک خط جدید.
خلاصه
ما در قسمت اول خیلی چیزهای زیادی را پوشش نداده اید، اما امیدواریم که اولین اسکریپت شما را داشته باشید.
در بخش بعدی ما به دنبال بهبود در اسکریپت سلام جهان برای نمایش متن در رنگ های مختلف، پذیرش و مدیریت پارامترهای ورودی، متغیرها و توضیح کد شما هستیم.