خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

هر آنچه که برای شروع نوشتن برنامه های Bash باید بدانید

می‌توانید از اسکریپت‌های Bash برای خودکار کردن انواع کارها استفاده کنید. با اصول اولیه آشنا شوید و سفر برنامه نویسی Bash خود را آغاز کنید.

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

دانش برنامه نویسی Bash برای هر توسعه دهنده ای ضروری است، به خصوص اگر با سیستم های مبتنی بر یونیکس کار می کنید.

متغیرها در Bash

متغیرهای Bash به حروف بزرگ و کوچک حساس هستند. برای تعریف متغیرها، از علامت تساوی (=) با نام در سمت چپ و مقدار در سمت راست استفاده کنید:

STATE=Washington

مقداری که این اعلان به STATE می دهد یک کلمه است. اگر به فاصله در مقدار خود نیاز دارید، از نقل قول در اطراف آن استفاده کنید:

STATE="North Arizona"

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

STATE=Washington
LOCATION="My Location is $STATE"

چاپ مقادیر در Bash

روش های مختلفی برای چاپ متغیرها در Bash وجود دارد. می توانید از دستور echo برای خروجی اولیه یا دستور printf به سبک C برای قالب بندی رشته ها استفاده کنید.

STATE=Washington
LOCATION="My Location is $STATE"
echo $LOCATION

پس از اعلام متغیر STATE، این اسکریپت LOCATION را با ارجاع به STATE تعریف می کند. اگر سپس از echo برای چاپ مقدار نهایی متغیر LOCATION استفاده می کند.

نتیجه چاپ یک متغیر ارجاع شده

کلمه کلیدی printf به شما امکان می دهد از افعال قالب بندی برای خروجی داده استفاده کنید. افعال قالب بندی رشته ای مشابه افعال C و Go هستند اما با افعال محدود.

فعل

عملکرد

%c

تک کاراکترها را چاپ می کند

%o

مطلب مرتبط:   چگونه پایگاه داده NoSQL خود را تنظیم کنید

8 دسیمال را چاپ می کند

%s

رشته ها را مستقل از پوشش چاپ می کند

٪ایکس

هگزادسیمال را با حروف کوچک چاپ می کند

٪ایکس

با حروف بزرگ هگزادسیمال چاپ می کند

%d

اعداد صحیح را چاپ می کند

%e

نمادهای علمی شناور را با حروف کوچک چاپ می کند

%E

نمادهای علمی شناور را با حروف بزرگ چاپ می کند

% f

اعداد ممیز شناور را چاپ می کند

%%

یک نماد درصد واحد را چاپ می کند.

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

STATE=Lagos
printf "My Location is %s" $STATE

تابع printf متغیر STATE را در موقعیت فعل %s جایگزین می‌کند و خروجی «مکان من لاگوس است» خواهد بود.

نظرات در Bash

می‌توانید با نماد هش یا پوند (#) در Bash نظر بدهید. پوسته به طور خودکار نظرات را نادیده می گیرد.

#!/bin/bash
# STATE=Washington
# LOCATION="My Location is $STATE"

هیچ نظر چند خطی وجود ندارد. اکثر IDE ها و ویرایشگرهای متن به شما اجازه می دهند با میانبر Ctrl/Command + فوروارد اسلش(/) نظر بدهید. شما باید بتوانید از میانبر برای ایجاد نظرات تک خطی متعدد استفاده کنید.

دریافت ورودی کاربر در Bash

مانند بسیاری از زبان های برنامه نویسی دیگر، می توانید ورودی کاربر را در Bash دریافت کنید تا برنامه ها/اسکریپت های خود را تعاملی تر کنید. می توانید از دستور read برای درخواست ورودی کاربر استفاده کنید.

read response

در این حالت، متغیر پاسخ، ورودی کاربر را هنگام تحویل نگه می‌دارد.

echo "What do you want ?: "
read response
echo $response

درخواست ورودی کاربر در یک خط جدید در مثال بالا خواهد بود.

نتیجه دریافت ورودی کاربر بدون پرچم -n

می توانید پرچم -n را به دستور echo print اضافه کنید تا خطی که کاربر ورودی را در آن وارد می کند حفظ شود.

echo -n "What do you want."
read response
echo $response

نتیجه دریافت ورودی کاربر با پرچم -n

اعلان آرایه ها در Bash

آرایه ها در Bash درست مانند بسیاری از زبان ها هستند. با مشخص کردن عناصر داخل پرانتز می توانید یک متغیر آرایه را در Bash اعلام کنید.

Countries=('USA' 'Russia' 'Ukraine', "England", "Taiwan", "China")

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

echo ${Countries[*]}

همچنین می توانید شاخص آرایه را برای دسترسی به یک عنصر خاص مشخص کنید. شاخص یک آرایه از صفر شروع می شود.

echo "${Countries[4]}"

اظهارات مشروط در Bash

Bash شرایطی را برای تصمیم گیری در برنامه ها فراهم می کند.

مطلب مرتبط:   عیب یابی 10 خطای رایج در Arduino IDE

در اینجا آناتومی عبارت if-else در Bash آمده است. برای مشخص کردن پایان شرط باید از نیم دونقطه استفاده کنید.

if [[ condition ]]; then
   echo statement1
elif [[condition ]]; then
   echo statement2
else [[condition ]]; then
   echo statement3
fi

شما باید هر عبارت if را با کلمه کلیدی fi پایان دهید.

if [ 1 == 2 ]; then
   echo one
elif [ 2 == 3 ]; then #else-if
   echo two
else [ 4 > 3 ];
   echo "correct, 3"
fi

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

CITY=Lagos

case $CITY in

  "Washington") # pattern
    echo "United States of America" # statement
    ;; # end of a case

  "Lagos" | "Abuja")
    echo"Nigeria"
    ;;

  "Johannesburg" | "Cape Town")
    echo"South Africa"
    ;;

  *) # default pattern
    echo "Antarctica" # default statement
    ;;
esac # end of the case statement

شما می توانید حروف پیش فرض را با استفاده از علامت ستاره (*) به عنوان الگو تعریف کنید. عبارات موردی باید با کلمه کلیدی esac ختم شوند.

حلقه ها در Bash

بسته به نیاز خود، می توانید از حلقه while، range for-loop یا حلقه C-style برای عملیات های تکرار شونده استفاده کنید.

در اینجا نمونه ای از حلقه for-loop به سبک C آمده است. حلقه های For باید با کلمه کلیدی done خاتمه یابد و شما باید عبارت for را با یک نقطه ویرگول و به دنبال آن کلمه کلیدی do پایان دهید.

for ((a = 0 ; a < 10 ; a+2)); do
  echo $a
done

محدوده برای حلقه برای کار با فایل ها و بسیاری از عملیات های دیگر مفید است. شما باید از کلمه کلیدی in با محدوده for-loop استفاده کنید.

for i in {1..7}; do
    echo $1
done

در اینجا یک حلقه بی نهایت ساده برای نشان دادن Bash در حین انجام حلقه وجود دارد.

name=1
while [ 1 -le 5 ] # while 1 < 5
do
  echo $name
done

-le در عبارت شرط عملگر باینری برای کمتر از.

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

توابع در Bash

برای اعلام توابع در Bash به کلمات کلیدی نیاز ندارید. می توانید توابع را با نام و سپس پرانتز قبل از بدنه تابع اعلام کنید.

print_working_directory() {
  echo $PWD#calling the PWD command from the script
}

echo "You are in $(print_working_directory)"

توابع می توانند متغیرها را در Bash برگردانند. تنها چیزی که نیاز دارید کلمه کلیدی بازگشت است.

print_working_directory() {
  return $PWD
}

تابع print_working_directory دایرکتوری کاری فایل را برمی گرداند.

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

Bash تنها زبانی نیست که می توانید برای تعامل با پوسته سیستم عامل خود یا ایجاد برنامه های خط فرمان از آن استفاده کنید. می توانید از بسیاری از زبان های دیگر مانند Go، Python، Ruby و Rust استفاده کنید.

بسیاری از سیستم عامل ها پایتون 3 را از قبل نصب کرده اند و پایتون یک زبان رایج است. اگر به عملکردی حتی بیشتر از آنچه که اسکریپت های Bash می توانند ارائه دهند نیاز دارید، از Python استفاده کنید.