آموزش اسکریپت Bash برای مبتدیان: چیست، چگونه یکی بنویسیم، و نمونه های اسکریپت

اگر تا به حال از یک سیستم عامل لینوکس، به عنوان مثال، یک VPS مبتنی بر لینوکس استفاده کرده اید، ممکن است نام bash را شنیده باشید. این یک پوسته یونیکس است که دستورات مختلفی را می خواند و اجرا می کند.

هنگامی که نیاز به اجرای چندین دستور bash دارید، لازم نیست آنها را به صورت دستی یکی یکی اجرا کنید. در عوض، امکان ایجاد یک فایل اسکریپتی که حاوی توابع bash برای اجرای آن دستورات است، وجود دارد.

ممکن است پیچیده به نظر برسد، اما با یادگیری اصول اولیه آن، زبان برنامه نویسی bash را درک خواهید کرد و خواهید فهمید که چگونه می تواند به گردش کار شما کمک کند.

این مقاله را پوشش خواهد داد process از برنامه نویسی bash. ما همه چیز را از دستورات bash گرفته تا اجرای برنامه bash را بررسی خواهیم کرد روی یک لینوکس terminal.

Bash چیست

Bash، کوتاه برای Bourne-Again Shell، یک پوسته یونیکس و یک مفسر زبان دستوری است. دستورات پوسته را می خواند و برای اجرای آنها با سیستم عامل تعامل می کند.

برای درک کامل برنامه نویسی پوسته bash، باید دو مفهوم را بدانید: پوسته و اسکریپت نویسی.

Shell یک پردازنده ماکرو است که از دستورات برای تعامل با سیستم عامل استفاده می کند. این بدان معنی است که می تواند بازیابی کند، process، و اطلاعات را ذخیره کنید روی یک کامپیوتر.

در همین حال، اسکریپت نویسی است process کامپایل کردن دستورات پوسته در یک فایل جدید با استفاده از یک ویرایشگر متن.

وقتی bash را در یک ویرایشگر متن می نویسید، در حال کامپایل کردن هستید دستورات bash یا توابع bash – مجموعه ای از دستورات که می توان آنها را چندین بار فقط با استفاده از نام تابع فراخوانی کرد. سپس متن به عنوان یک فایل اجرایی ذخیره می شود اسکریپت bash فایل با .sh افزونه.

چرا از Bash Scripting استفاده کنیم؟

اسکریپت های Bash می توانند به گردش کار شما کمک کنند زیرا بسیاری از دستورات طولانی را در یک فایل اسکریپت اجرایی کامپایل می کنند.

به عنوان مثال، اگر چندین دستور دارید که باید آنها را در یک بازه زمانی خاص اجرا کنید، می توانید به جای تایپ و اجرای دستی دستورات، یک اسکریپت bash را کامپایل کنید. شما فقط باید فایل اسکریپت را در مواقع ضروری اجرا کنید.

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

  • دستورات با ساختار خوب – دستورات را به صورت ترتیبی تنظیم کنید تا هر بار که اسکریپت را اجرا می کنید، به ترتیب درست اجرا شود.
  • اتوماسیون وظایف – اجرای اسکریپت را در هر زمان تعریف شده با استفاده از زمانبندی مبتنی بر زمان cron خودکار کنید.
  • شفافیت – مردم می توانند محتوای یک اسکریپت را بررسی کنند زیرا در یک فایل متنی قابل خواندن است. با این حال، اگر دستورات را با استفاده از برنامه دیگری که به زبان برنامه نویسی دیگری نوشته شده است، مانند C++ اجرا کنید، باید به کد منبع دسترسی داشته باشید.
  • قابل انتقال – اگر یک اسکریپت را به سایر توزیع‌های لینوکس منتقل کنید، به شرط در دسترس بودن دستورات پوسته، همچنان کار می‌کند روی آن سیستم عامل خاص

نکته حرفه ای

لینوکس دارای دفترچه راهنمای فرمان bash shell است. این شامل توضیحاتی از تمام اصطلاحات فنی و متغیرهای استاندارد پوسته است. را تایپ و اجرا کنید مرد دستور bash برای نمایش دفترچه راهنما روی را terminal.

با دستورات Bash آشنا شوید

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

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

cat /etc/shells

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

/bin/bash
/bin/sh
/bin/tcsh
/bin/csh

هر اسکریپت پوسته bash باید با آن شروع شود #! مسیر مطلق به مترجم bash دنبال می شود. برای مشاهده مسیر این دستور را وارد کنید:

which bash

باید خروجی زیر را تولید کند:

/bin/bash

این مسیر استاندارد به مترجم bash است روی اکثر سیستم عامل های یونیکس برای اینکه پوسته بداند که باید دستورات را با استفاده از مفسر bash اجرا کند، اسکریپت را با این خط شروع کنید:

#!/bin/bash

مهم! اگر می خواهید اسکریپت های bash را اجرا کنید روی یک سرور خصوصی مجازی، از طریق یک کلاینت SSH به آن متصل شوید.

مرحله بعدی نوشتن و کامپایل دستورات در a است .sh فایل با استفاده از ویرایشگر متن شما به یک ویرایشگر متن یونیکس مانند VIM یا GNU نانو. در این آموزش، ما از نانو ویرایشگر متن برای ایجاد فایل با وارد کردن این دستور:

nano function.sh

این یک صفحه جدید باز می کند .sh فایل برای ویرایش شما با نوشتن شروع کنید #!/bin/bash به دنبال دستورات bash

مهم! وقتی استفاده از ویرایشگر متن نانو را تمام کردید، فشار دهید Ctrl+X را ببندید، سپس فشار دهید Y و وارد برای ذخیره تغییرات

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

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

دستورات bash زیادی وجود دارد روی لینوکس. برای شروع، ما هفت مورد اساسی را پوشش خواهیم داد.

1. نظرات

نظرات دارای توضیحات هستند روی خطوط خاصی در فیلمنامه این terminal نظرات را در طول اجرا تجزیه نمی کند، بنابراین آنها بر خروجی تأثیر نمی گذارند.

دو راه برای اضافه کردن نظر به یک اسکریپت وجود دارد. روش اول تایپ کردن است # در ابتدای یک نظر تک خطی

#!/bin/bash
#Command below prints a Hello World text
echo “Hello, world!”

روش دوم با استفاده از : به دنبال . این روش برای نظرات چند خطی کار می کند.

#!/bin/bash
read a
: ‘ 
The following commands prints
Hello, world!
‘
echo “Hello, World!”

2. متغیرها

متغیرها نمادهایی هستند که نشان دهنده یک کاراکتر، رشته کاراکترها یا اعداد هستند. فقط باید نام متغیر را در خط فرمان تایپ کنید تا از رشته ها یا اعداد تعریف شده استفاده کنید.

برای اختصاص یک متغیر، نام متغیر و مقدار رشته را مانند اینجا تایپ کنید:

testvar=“This is a test variable”

در این مورد، testvar نام متغیر است و این یک متغیر آزمایشی است مقدار رشته است. هنگام تخصیص یک متغیر، توصیه می کنیم از نام متغیری استفاده کنید که به راحتی قابل یادآوری است و مقدار آن را نشان می دهد.

برای خواندن مقدار متغیر در خط فرمان، از $ نماد قبل از نام متغیر به مثال زیر دقت کنید:

#!/bin/bash
testvar=“This is a test variable”
echo $testvar

خط فرمان دوم استفاده می کند اکو برای چاپ کردن ارزش testvar. خروجی آن اسکریپت خواهد بود:

This is a test variable

بیایید نگاهی به روش وارد کردن مقدار رشته با استفاده از عبارت بیاندازیم خواندن دستور دهید و اسکریپت را با دو مقدار رشته از متغیرهای مختلف مقایسه کنید:

#!/bin/bash
echo “Enter a number” 
read a #The user input in this command line will be stored as variable a
b=50 #The value of variable b
if [[$a -eq $b]]
then
echo “Same number”
else
echo “Different number”
fi

خروجی آن اسکریپت باید به صورت زیر باشد:

Enter a number
20
Different number

توجه داشته باشید که خط 3 مقداری است که متغیر می شود آ.

اسکریپت متغیر را مقایسه می کند آ با ارزش 20 و متغیر ب با ارزش 50. از آنجایی که مقادیر متفاوت هستند، اسکریپت چاپ می شود عدد متفاوت.

با این حال، اگر کاربر ورودی 50، این خروجی خواهد بود:

Enter a number
50
Same number

در این مثال از عبارات شرطی نیز استفاده می شود که در ادامه به آنها خواهیم پرداخت.

پیشنهاد می‌کنیم بخوانید:  بایگانی VPS

3. echo Command

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

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

#!/bin/bash
echo “Hello, world!”

خروجی آن دستور است سلام دنیا! به طور پیش فرض، هنگام استفاده از دستور echo مانند این، terminal یک خط جدید در زیر آن وارد می کند. اگر می‌خواهید یک خروجی را بدون خط جدید بازتاب دهید، می‌توانید با استفاده از آن این کار را انجام دهید -n.

#!/bin/bash
echo -n “Hello, world!”

از گزینه استفاده کنید \n برای معرفی یک شکست خط در خروجی. برای فعال کردن اسلش معکوس (\)، باید درج کنید -e.

#!/bin/bash
echo -e “Hello, \nworld!”

خروجی این دستور به شکل زیر خواهد بود:

Hello,
world!

گزینه \ t یک فضای برگه افقی اضافه می کند:

#!/bin/bash
echo -e “\tHello, world!”

خروجی این دستور متن را به سمت راست فرو می‌کند:

        Hello, world!

شما همچنین می توانید چندین گزینه را ترکیب کنید. مثلا ترکیب کنید \n و \ t برای شکستن متن به خطوط و تورفتگی آن به سمت راست:

#!/bin/bash
echo -e “\n\tHello, \n\tworld!”

خروجی این دستور به شکل زیر خواهد بود:

      Hello,
      world!      

4. توابع

یک تابع مجموعه ای از دستورات را در یک گروه کامپایل می کند. اگر نیاز به اجرای مجدد دستور دارید، به سادگی به جای کل مجموعه دستورات، تابع را بنویسید.

روش های مختلفی برای نوشتن توابع وجود دارد.

راه اول این است که با نام تابع شروع کنید و آن را با پرانتز و براکت دنبال کنید:

function_name () {
first command
second command
}

یا اگر می خواهید آن را در یک خط بنویسید:

function_name () { first command; second command; }

روش دوم برای نوشتن یک تابع استفاده از کلمه رزرو شده است تابع به دنبال آن نام تابع. این کار نیاز به پرانتز را حذف می کند:

function function_name {
first command
second command
}

این روش یک نسخه تک خطی نیز دارد:

function function_name { first command; second command; }

به عنوان مثال، می توانیم دو تابع را با چندگانه بنویسیم اکو دستورات:

#!/bin/bash
hello_world () {
echo “Hello, World!”
echo “This is a test function”
}
print_message () {
echo “Let’s learn bash programming”
echo “Enjoy this tutorial”
}

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

حال، بیایید از دو مثال بالا در یک تابع bash کامل، از جمله اجرای آن استفاده کنیم:

#!/bin/bash
#Define a hello world function
hello_world () {
echo “Hello, World!”
echo “This is a test function”
}
#Define a print message function
print_message () {
echo “Let’s learn bash programming”
echo “Enjoy this tutorial”
}
#Execute the hello world function
hello_world
#Execute the print message function
print_message

این خروجی اسکریپت بالا است:

Hello, World!
This is a test function
Let’s learn bash programming
Enjoy this tutorial

5. حلقه ها

اگر بخواهید دستورات را چندین بار اجرا کنید، دستورات bash مفید هستند. سه نوع از آنها وجود دارد که می توانید در bash اجرا کنید – برای، در حالی که، و تا زمان.

این برای حلقه فرمان را برای لیستی از آیتم ها اجرا می کند:

#!/bin/bash
for item in

    do
    [commands]
    done

    مثال زیر از a استفاده می کند برای حلقه برای چاپ در تمام روزهای هفته:

    #!/bin/bash
    for days in Monday Tuesday Wednesday Thursday Friday Saturday Sunday
    do
    echo “Day: $days”
    done

    بر خط 2، “روزها” به طور خودکار به یک متغیر تبدیل می شود، با مقادیر نام روزهای بعدی. سپس، در اکو از دستور استفاده می کنیم $ نماد برای فراخوانی مقادیر متغیر.

    خروجی آن اسکریپت به صورت زیر خواهد بود:

    Day: Monday
    Day: Tuesday
    Day: Wednesday
    Day: Thursday
    Day: Friday
    Day: Saturday
    Day: Sunday

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

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

    #!/bin/bash
    while [condition]
    do
    [commands]
    done

    بیایید به یک مثال ساده نگاهی بیندازیم که شامل یک متغیر و عملگر افزایشی است که با نشان داده شده است ((++)):

    #!/bin/bash
    i=0
    while [ $i -le 5 ]
    do 
    echo $i
    ((i++))
    done

    متغیر با a شروع می شود 0 مقدار، و عملگر افزایش آن را یک افزایش می دهد. مجموعه شرط کمتر یا مساوی پنج است، بنابراین تا زمانی که خروجی به پنج برسد، دستور به تکرار ادامه خواهد داد. خروجی آن اسکریپت به صورت زیر خواهد بود:

    0
    1
    2
    3
    4
    5

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

    اگر همان خروجی را بخواهیم در حالی که مثال بالا با استفاده از تا زمان حلقه، ما می توانیم اسکریپت را به این صورت بنویسیم:

    #!/bin/bash
    i=0
    until [ $i -gt 5 ]
    do 
    echo $i
    ((i++))
    done

    اکنون این دستور تا زمانی که مقدار خروجی به 5 برسد تکرار می شود. خروجی مانند مثال ما با the خواهد بود در حالی که حلقه:

    0
    1
    2
    3
    4
    5

    6. بیانیه های مشروط

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

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

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

    بیایید نگاهی به ساده بیاندازیم اگر، سپس، و دیگر بیانیه. قبل از دستور، یک متغیر اضافه می کنیم تا کاربر بتواند مقداری را وارد کند:

    #!/bin/bash
    echo “Enter a number”
    read num
    if [[$num -gt 10]]
    then
    echo “The number is greater than 10”
    else
    echo “The number is not greater than 10”

    7. خواندن و نوشتن فایل ها

    چندین روش برای خواندن یک فایل وجود دارد، با گربه دستور محبوب ترین است. توجه داشته باشید که این دستور عبارت را می خواند کل محتوای فایل

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

    در مثال زیر یک داریم to-do.txt فایلی که حاوی لیست کارهایی است:

    Reply email
    Finish report
    Call clients
    Team evaluation

    ما استفاده خواهیم کرد گربه و خواندن دستورات در تابع bash ما برای خواندن و چاپ محتوای to-do.txt فایل. قسمت اول اسکریپت از گربه فرمان، در حالی که قسمت دوم از خواندن فرمان در یک حلقه

    #!/bin/bash
    echo “Reading the file using cat command”
    content=’cat to-do.txt’
    echo $content
    echo “Reading the file using read command and loop”
    filename=’to-do.txt’
    while read line
    do
    echo $line
    done<$filename

    خروجی اسکریپت به صورت زیر خواهد بود:

    Reading the file using cat command
    Reply email Finish report Call clients Team evaluation
    Reading the file using read command and loop
    Reply email
    Finish report
    Call clients
    Team evaluation

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

    output > filename
    output >> filename

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

    این >> اپراتور، روی از طرف دیگر، خروجی را به فایل داده شده اضافه می کند.

    در اینجا یک تغییر مسیر ساده برای نوشتن خروجی در یک فایل متنی وجود دارد:

    echo “Hello, world!” >> hello_world.txt

    تغییر مسیر نیز با خواندن دستور نوشتن هر ورودی کاربر. این مثال اسکریپت مقدار ورودی را به آن اضافه می کند name.txt فایل:

    #!/bin/bash
    echo “Enter your name”
    read Name
    echo $Name >> name.txt

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

    echo ‘cat name.txt’

    مطمئن شوید که مجوز فایل را با استفاده از دستور chmod تغییر داده اید تا قابل خواندن و نوشتن باشد و از اجازه رد شد خطا اگر می‌خواهید خروجی را به فایل‌های موجود اضافه کنید، حتماً نام فایل‌ها را درست تایپ کنید.

    پیشنهاد می‌کنیم بخوانید:  روش نصب phpMyAdmin روی CentOS 7
    آموزش اسکریپت Bash برای مبتدیان: چیست، چگونه یکی بنویسیم، و نمونه های اسکریپتآموزش اسکریپت Bash برای مبتدیان: چیست، چگونه یکی بنویسیم، و نمونه های اسکریپت
    آموزش اسکریپت Bash برای مبتدیان: چیست، چگونه یکی بنویسیم، و نمونه های اسکریپت 8

    4 عملکرد آسان که می توانید در اولین اسکریپت Bash خود امتحان کنید

    اکنون که برخی از دستورات bash را می‌دانیم، به نمونه‌های اساسی‌تر تابع bash برای اولین اسکریپت شما نگاه می‌کنیم.

    همانطور که قبلا ذکر شد، زمانی که می خواهید یک فایل اسکریپت bash بنویسید، از دستور nano filename.sh برای ایجاد و باز کردن یک فایل استفاده کنید. .sh فایل کنید و شروع به نوشتن توابع bash خود کنید. فراموش نکنید که پس از اتمام کار از فایل خارج شده و آن را ذخیره کنید.

    با یک تابع اکو ساده شروع کنید

    بیایید با یک تابع اکو ساده شروع کنیم. با تعریف نام تابع و سپس دستور echo شروع کنید روی خط بعدی، درست مانند مثال زیر:

    #!/bin/bash
    testfunction () {
    echo “My first function”
    }
    testfunction

    این اسکریپت را در آن ذخیره کنید testFunction.sh. زمانی که اسکریپت را اجرا می کنید روی در خط فرمان، باید خروجی زیر را ببینید:

    My first function

    به خاطر داشته باشید که اگر شما swap موقعیت تعریف تابع با فراخوانی تابع، منجر به خطا می شود. بیایید مثال زیر را ببینیم:

    #!/bin/bash
    testfunction
    testfunction(){
    echo “My first function”
    }

    این قطعه کار نخواهد کرد. تابع را در خط فرمان دوم فراخوانی می کند و بعداً تابع را تعریف می کند. در این حالت، مفسر نمی تواند تابع را هنگام اجرای اسکریپت پیدا کند و در نتیجه a فرمان یافت نشد خطا

    از چند پارامتر استفاده کنید

    توابع Bash هر تعداد پارامتر را می پذیرند. مثال زیر دو پارامتر را می پذیرد:

    #!/bin/bash
    testfunction () {
    echo $1
    echo $2
    }
    testfunction “Hello” “World”

    1 دلار نشان دهنده اولین آرگومان while است 2 دلار آرگومان دوم را در خط اجرای تابع نشان می دهد. همانطور که استفاده کردیم “سلام” و “جهان” برای آرگومان ها، خروجی به صورت زیر خواهد بود:

    خط فرمان Hello World را نشان می دهدخط فرمان Hello World را نشان می دهد

    همچنین می توانید از آرگومان های خط فرمان استفاده کنید و توابع bash را انجام دهید. یکی از این نمونه ها در زیر نشان داده شده است:

    #!/bin/bash
    addition () {
    sum=$(($1+$2))
    return $sum
    }
    read -p "Enter a number: " int1
    read -p "Enter a number: " int2
    addition $int1 $int2
    echo "The result is : " $?

    جمع در یک متغیر اختصاص داده می شود مجموع، و این از تابع برگردانده می شود. توابع Bash همیشه یک مقدار واحد را برمی گرداند. ورودی کاربر با استفاده از آن گرفته می شود خواندن برای هر دو شماره در نهایت، نتیجه با استفاده از چاپ می شود دلار؟ که مقدار بازگشتی را ذخیره می کند $ مجموع از تابع

    ایجاد دایرکتوری و تغییر مسیر

    حالا بیایید به مثال تابع دیگری نگاه کنیم که در آن ابتدا یک دایرکتوری ایجاد می کنیم و سپس مسیر را برای اشاره به یک مکان جدید تغییر می دهیم. این تابع شامل mkdir و سی دی دستورات لینوکس برای ایجاد یک دایرکتوری جدید و تغییر دایرکتوری فعلی:

    #!/bin/bash
    sampleFunction () {
    mkdir -p $1
    cd $1
    }
    sampleFunction myDir

    تابع اولین آرگومان را می خواند و دایرکتوری با آن نام ایجاد می کند. پس از اجرای اسکریپت، مسیر کاری فعلی را با استفاده از pwd فرمان روی را terminal. خواهید دید که در حال حاضر در داخل جدید ایجاد شده هستید myDir.

    حلقه ها و شرط ها را ترکیب کنید

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

    #!/bin/bash
    isvalid=true
    count=1
    while [ $isvalid ]
    do
    echo $count
    if [ $count -eq 5 ];
    then
    break
    fi
    ((count++))
    done

    مثال بالا استفاده می کند در حالی که و اگر بیانیه. این را اجرا می کند در حالی که پس از بررسی عبارت شرطی، پنج بار حلقه بزنید.

    خروجی این اسکریپت به صورت زیر خواهد بود:

    1
    2
    3
    4
    5

    این برای حلقه می تواند شمارنده ها را افزایش و کاهش دهد. نمونه ای از الف برای حلقه در زیر نشان داده شده است:

    #!/bin/bash
    for (( count=10; count>0; count-- ))
    do
    echo -n "$count "
    done

    خروجی این حلقه for باید باشد:

    10 9 8 7 6 5 4 3 2 1

    با اگر بیانیه ها را نیز می توانیم تعریف کنیم دیگر اگر با استفاده از elif بیانیه:

    #!/bin/bash
    echo "Enter a valid number"
    read n
    if [ $n -eq 101 ];
    then
    echo "This is the first number"
    elif [ $n -eq 510 ];
    then
    echo "This is the second number"
    elif [ $n -eq 999 ];
    then
    echo "This is the third number"
    else
    echo "No numbers over here"
    fi

    ما همچنین می توانیم آن اسکریپت را با استفاده از مورد بیانیه. در مورد بیانیه، ;; نشان دهنده یک break case است، بنابراین اگر مقدار متغیر هر یک از شرایط را برآورده کند، به انتهای اسکریپت می پرد:

    #!/bin/bash
    echo "Enter a valid number"
    read n
    case $n in
    101)
    echo "This is the first number" ;;
    510)
    echo "This is the second number" ;;
    999)
    echo "This is the third number" ;;
    *)
    echo "No numbers over here" ;;
    esac

    روش اجرای Bash Script

    اکنون که یک اسکریپت bash نوشته‌ایم، بیایید روش اجرای آن را از طریق آن یاد بگیریم terminal. سه روش برای انجام آن وجود دارد – با استفاده از ضربه شدید دستور، با استفاده از ./ دستور، و اجرای اسکریپت از یک دایرکتوری دیگر.

    با استفاده از فرمان Bash

    روش اول با استفاده از ضربه شدید دستور از دایرکتوری مناسب به عنوان مثال، ممکن است شما یک تابع.ش اسکریپت bash حاوی توابع اکو ساده در تست/باش فهرست راهنما. ابتدا باید دایرکتوری را با استفاده از این دستور باز کنید:

    cd Test/Bash

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

    bash function.sh

    شما باید خروجی را به صورت زیر ببینید:

    اگر سعی کنید اسکریپت را بدون آن اجرا کنید ضربه شدید دستور، شما یک را دریافت خواهید کرد فرمان یافت نشد پیغام خطا.

    خط فرمان نشان می دهد که خطای خروجی فرمان bash یافت نشدخط فرمان نشان می دهد که خطای خروجی فرمان bash یافت نشد

    با استفاده از دستور ./

    شما می توانید یک اسکریپت bash را بدون آن اجرا کنید ضربه شدید فرمان با این حال، باید فایل را طوری تنظیم کنید که دارای آن باشد اجرا کردن مجوز با استفاده از دستور زیر از دایرکتوری مناسب:

    chmod +x function.sh

    این دستور مجوزهای فایل را تغییر می دهد تا همه بتوانند فایل را اجرا کنند. پس از انجام این کار، اسکریپت bash را با استفاده از این دستور اجرا کنید:

    ./function.sh

    اگر مجوز را به درستی تنظیم نکنید، terminal a چاپ خواهد کرد اجازه رد شد پیغام خطا:

    مانند ضربه شدید دستور، شما همچنین یک دریافت خواهید کرد فرمان یافت نشد در صورت عدم استفاده خطا ./ در فرمان شما

    اسکریپت را از یک دایرکتوری متفاوت اجرا کنید

    جایگزین دیگر اجرای اسکریپت از دایرکتوری دیگری است. پس از ایجاد اسکریپت bash، از آن استفاده کنید pwd دستور برای یافتن دایرکتوری فعلی شما. هنگامی که مسیر را شناختید، می توانید اسکریپت را از هر دایرکتوری اجرا کنید. برای مثال از دستور زیر برای اجرا استفاده کنید تابع.ش از دایرکتوری خانگی:

    bash Test/Bash/function.sh

    نکته حرفه ای

    استفاده کنید سی دی دستور دهید بدون در نظر گرفتن دایرکتوری که در آن هستید، بلافاصله به فهرست اصلی بروید.

    نتیجه

    Bash دستورات پوسته را می خواند و برای اجرای آنها با سیستم عامل تعامل می کند. جنبه عالی bash این است که می توانید بسیاری از دستورات و توابع bash را در یک اسکریپت اجرایی واحد کامپایل کنید و به شما کمک می کند گردش کار خود را ساده کنید.

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

    • نظرات
    • متغیرها
    • اکو
    • کارکرد
    • حلقه ها
    • اظهارات مشروط
    • خواندن و نوشتن فایل ها

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

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

    به دنبال راهنماهای bash بیشتری هستید؟

    راهنمای مبتدیان برای Bash Array
    25 نمونه رایج اسکریپت لینوکس Bash

    سوالات متداول آموزش Bash

    آیا یادگیری Bash آسان است؟

    یادگیری Bash بسیار آسان است و بسیاری از زبان آموزان در حدود نیم سال بر هر دو دستور مقدماتی و پیشرفته تسلط می یابند.

    آیا Bash از پایتون راحت تر است؟

    نه، پایتون ساده‌تر و ساده‌تر از Bash است. از آنجایی که Bash در ابتدا یک نرم افزار جایگزین برای پوسته Bourne بود، نوشتن Bash در مقایسه با پایتون دشوار است. پایتون از Bash نیز قدرتمندتر است.

    Bash برای چه مواردی استفاده می شود؟

    Bash معمولاً برای خودکارسازی کارهای توسعه مانند کامپایل کد، اشکال زدایی، مدیریت تغییر و آزمایش استفاده می شود. Bash همچنین توسط مهندسان شبکه برای آزمایش، بهینه سازی و پیکربندی شبکه های سازمانی استفاده می شود.