اسکریپت های خود را با استفاده از bash ایجاد کنید

یادگیری لینوکس

صرف نظر از توزیع لینوکس که ما از آن استفاده می کنیم ، شکی نیست که مورد علاقه من اوبونتو است به محض استفاده از این سیستم ، نیازهای اتوماسیون. یعنی: ما را ایجاد کنید دستورات خود که دستورات خاصی را به روشی شخصی انجام می دهند. این نیاز می تواند به دلایل خاصی باشد:

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

اگرچه یک اسکریپت bash می تواند در / از هر دایرکتوری اجرا شود ، اما معمولاً چنین است برای میزبانی این اسکریپت ها دایرکتوری ایجاد کنید. در مورد من:

$ mkdir /home/pedro/.bin

من این را باور دارم فهرست (با هدایت دوره در مقابل نام پنهان شده است) تا همه اسکریپت هایی که استفاده می کنم را در آنجا نگه دارم. مخفی بودن نام فهرست معنای دیگری ندارد - مگر اینکه صریحاً در غیر این صورت مشخص شده باشد - هنگام مشاهده / خانه / پدرو از بیننده پرونده در حالت گرافیکی ظاهر نمی شود.

حالا شما مجبورید به لینوکس اطلاع دهید که باید آنجا را نیز جستجو کند (/home/pedro/.bin) دستوراتی که از ترمینال اجرا می شوند.

$ PATH=$PATH;/home/pedro/.bin

به این ترتیب سیستم به دنبال سفارشات ما در آنجا خواهد بود تا جلسه را ببندیم. تا این انجمن دائمی شود:

$ sudo nano /etc/environment

و اضافه می کنیم

:/home/pedro/.bin

در انتهای خط PATH ، بسیار مهم است که قبل از آدرس دایرکتوری که ما در آن قرار داریم ، نقطه عطف را فراموش نکنید ، این مکانیزم جمع است.

اولین اسکریپت گام به گام ما

ما پرونده خود را ایجاد می کنیم ، در مورد من مانند این است:

$ touch ~/.bin/donde

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

$ gedit ~/.bin/donde &

و ما محتوای زیر را اضافه می کنیم:

#!/usr/bin/env bash

if [ $# -lt 1 ];
then
    echo "Necesitas pasar un parámetro"
else
    whereis $1
fi

تحلیل اسکریپت

اولین خط تماس ما «شبانگ»(#! / Usr / bin / env bash) از لینوکس بخواهید گزارش دهد پوسته bash کجا قرار دارد و آنچه در زیر می آید با توجه به نیازهای bash اجرا می شود. این احتیاط راحت است اطمینان حاصل کنید که اسکریپت های ما روی هر نصب کار می کنند. ممکن دیگر شبانگ او خندید:

#!/bin/bash

تفاوت بین آنها می تواند بسیار هولناک باشد ، و من آن را توضیح خواهم داد. در این آخرین من فرض می کنم که در سیستم ما پوسته bash در آدرس / bin / bash است. با این حال ، جایی که من در فیلمنامه پیشنهاد می دهم حدس می زنم نمی دانم کجاست مفسر bash. من از سیستم می خواهم که او آن آدرس را ارائه دهد.

خط سوم: همانطور که مشاهده می کنید ، خط دوم اگر است. برای bash شخصیت ها «$#« شامل تعداد پارامترهایی است که ما از خط فرمان عبور می دهیم. بنابراین ، »اگر [$ # -lt 1] ؛» به معنای واقعی کلمه به معنای "اگر تعداد پارامترها کمتر از 1 باشد".

خط چهارم: سپس (ترجمه به معنای واقعی کلمه از انگلیسی: پس) ، در اینجا نشان داده شده است که آنچه بعدی می آید هنگام ارزیابی شرایط اجرا خواهد شد if درست باش: به عبارت دیگر ، تعداد پارامترها کمتر از 1 است ، یعنی صفر.

خط پنجم: اگر اسکریپت خود را بدون هیچ پارامتری اجرا کنیم ، در ترمینال "شما باید یک پارامتر را عبور دهید" را نشان می دهیم.

سطر ششم: نشان می دهد آنچه در زیر اجرا می شود وقتی شرطی که اعلام کردیم درست نیست.

خط هفتم: سه دستور را اجرا کنید «کجاست« همراه با محتوایی که ما به عنوان منتقل کرده ایم اولین پارامتر.

خط هشتم: با «fi»نشان می دهد که بلوک به پایان می رسد if.

در حال آزمایش اسکریپت ما

مهم است مجوزهای نوشتن را اضافه کنید به متن:

$ chmod -x ~/.bin/donde

بدون این ، خطای "اجازه رد شد" ظاهر می شود.. پس از آن ، می توانیم اسکریپت خود را اجرا کنیم.

$ donde php

این باید مکان باینری های php ، پرونده های منبع آنها و صفحات man را به ما نشان دهد. یه چیزی شبیه اون:

php: /usr/bin/php7.0 /usr/bin/php /usr/lib/php /etc/php 
/usr/share/php7.0-readline /usr/share/php7.0-json /usr/share/php7.0-opcache 
/usr/share/php7.0-common /usr/share/php /usr/share/man/man1/php.1.gz

بازیابی مجدد

  • ما یک را فعال می کنیم فهرست ".bin" برای قرار دادن اسکریپتهای ما.
  • ما فراهم می کنیم اطلاعات را به لینوکس وارد کنید تا این فهرست در جستجوی دستورات خود باشد.
  • ما اسکریپت خود را ایجاد می کنیم.
  • تفاوت بین ناهمسان شبانگ.
  • استفاده از تعداد پارامترهای عبور شده با $ #.
  • استفاده از اولین پارامتر با $1.

امیدوارم و آرزو می کنم که این متن برای شما مفید باشد.


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

4 نظر ، نظر خود را بگذارید

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.

  1.   میگل dijo

    بسیار خوب و خوب توضیح داده شده است ، اما یک پارامتر به چه چیزی اشاره دارد؟

    1.    تصویر مکان یاب پدرو رویز هیدالگو dijo

      ممنون میگل!

      من با پارامتر تمام اطلاعات مکمل را که به یک برنامه ، عملکرد یا سیستم ارائه می شود درک می کنم. از آنجا که این می تواند دست و پا گیر باشد ، بگذارید با چند مثال به شما پاسخ دهم.

      در دستور linux برای کپی کردن فایل a.txt در پرونده b.txt ، موارد زیر را می نویسیم:

      $ cp a.txt ب. txt

      برنامه cp در اینجا دو پارامتر دریافت می کند که نام دو فایل است ، اولین (باید وجود داشته باشد) a.txt و دیگری b.txt.

      مثال دیگر: اگر با دستور از کنسول برای چاپ ارسال می کنید

      $ lp file.pdf

      در این حالت "file.pdf" یک پارامتر برای برنامه lp است.

      امیدوارم شک شما را برآورده کنم

      توجه

  2.   میگل dijo

    نظرات من ظاهر نمی شود ، این عدم احترام است ، من دیگر به این انجمن بر نمی گردم.

    1.    تصویر مکان یاب پدرو رویز هیدالگو dijo

      من نمی دانم چه اتفاقی افتاده است ، در هر صورت منتشر شده است.

      سلام.