برنامه نویسی

Bash vs Python Scripting: یک راهنمای عملی ساده اما طولانی

ضربه شدید و پایتون دو زبان برنامه نویسی محبوب هستند که برای کارهای اتوماسیون و مدیریت سیستم استفاده می شوند.

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

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

اسکریپت Bash

Bash & Bash Scripting چیست؟

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

اسکریپت های Bash به راحتی نوشته و اجرا می شوند و می توانند عملیات پیچیده را با استفاده از چند خط کد انجام دهند. Bash بسیاری از دستورات داخلی را ارائه می دهد، مانند “echo” (برای چاپ استفاده می شود)، “cd” (برای تغییر دایرکتوری)، “ls” (لیست) و “grep” (جستجوی مطابقت با یک الگوی داده شده)، که می تواند در اسکریپت ها استفاده شود.

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

مبانی برنامه نویسی Bash

در اینجا توضیحی درباره اصول اسکریپت نویسی Bash آورده شده است:

  1. متغیرها:
  • در Bash، یک متغیر برای ذخیره یک مقدار، مانند یک عدد یا یک رشته استفاده می شود.

  • متغیرها را می توان با استفاده از علامت تساوی (=) اعلام کرد و یک مقدار نسبت داد.

  • برای مثال x=10 مقدار 10 را به متغیر x نسبت می دهد.

  1. شرایط:
  • در Bash از شرطی ها برای تصمیم گیری بر اساس یک شرط خاص استفاده می شود.

  • دستور if برای بررسی درستی یک شرط استفاده می شود و از دستور else برای تعیین اینکه در صورت نادرست بودن شرط چه کاری انجام دهیم استفاده می شود.

  • مثلا:

x=10
if [ $x -gt 5 ]
then
    echo "x is greater than 5"
else
    echo "x is less than or equal to 5"
fi
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

  • حلقه for برای تکرار روی یک دنباله از مقادیر استفاده می شود، در حالی که حلقه while برای تکرار یک بلوک کد تا زمانی که یک شرط خاص درست است استفاده می شود.

  • مثلا:

# Using a for loop to iterate over a list of values
fruits=("apple" "banana" "cherry")
for fruit in "${fruits[@]}"
do
    echo "$fruit"
done

# Using a while loop to repeat a block of code
x=0
while [ $x -lt 10 ]
do
    echo "$x"
    x=$((x+1))
done
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. کارکرد:
  • در Bash، از توابع برای کپسوله کردن یک بلوک از کد استفاده می شود که می تواند بارها و بارها با ورودی های مختلف فراخوانی شود.

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

  • مثلا:

# Defining a function to calculate the area of a rectangle
function calculate_rectangle_area {
    width=$1
    height=$2
    area=$((width * height))
    echo $area
}

# Calling the function with different inputs
echo $(calculate_rectangle_area 3 4) # Output: 12
echo $(calculate_rectangle_area 5 6) # Output: 30
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اینها بلوک های اصلی اسکریپت نویسی Bash هستند و می توان آنها را برای ایجاد اسکریپت های پیچیده تر ترکیب کرد.

اسکریپت های بیشتر Bash

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

1. دستکاری فایل:

  • اسکریپتی که نام همه فایل‌های یک فهرست را با پسوند خاص تغییر می‌دهد تا پیشوند جدیدی داشته باشد.

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

  • اسکریپتی که تمام فایل های موجود در یک فهرست را در یک فایل آرشیو فشرده فشرده می کند.

این مخزن github را برای نمونه اسکریپت های اسکریپت bash بالا بررسی کنید.

2. مدیریت سیستم:

  • اسکریپتی که با استفاده از کپی ایمن (SCP) از تمامی فایل های موجود در یک دایرکتوری در یک سرور راه دور پشتیبان می گیرد.

  • اسکریپتی که سیستم را رصد می کند، برای یک خطای خاص ثبت می شود و در صورت وقوع یک هشدار ایمیل ارسال می کند.

  • اسکریپتی که نصب بسته‌های نرم‌افزاری و به‌روزرسانی‌ها را در چندین سرور به‌طور خودکار انجام می‌دهد.

برای بخش مدیریت سیستم، در اینجا نمونه‌ای از اسکریپت Bash است که نصب بسته‌های نرم‌افزاری و به‌روزرسانی‌ها را در چندین سرور خودکار می‌کند:

#!/bin/bash

# List of servers to update
servers=("server1" "server2" "server3")

# Software packages to install
packages=("apache2" "mysql-server" "php")

# Update package lists on all servers
for server in "${SERVERS[@]}"; do
  ssh $server "sudo apt-get update"
done

# Install packages on all servers
for server in "${SERVERS[@]}"; do
  ssh $server "sudo apt-get install ${PACKAGES[@]} -y"
done
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این اسکریپت ابتدا لیستی از سرورها را برای به روز رسانی و لیستی از بسته های نصب یا به روز رسانی را تعریف می کنیم. سپس از طریق هر سرور در لیست حلقه می زنیم و دستور “apt-get update” را برای به روز رسانی بسته های سیستم اجرا می کنیم. سپس هر بسته را در لیست حلقه زده و با استفاده از دستور “apt-get install” آن را نصب یا به روز می کنیم.

گزینه -y با نصب apt-get استفاده می شود تا به طور خودکار به هر درخواستی در طول فرآیند نصب پاسخ “بله” بدهد.

توجه داشته باشید که این اسکریپت فرض می کند که شما به سرورها دسترسی SSH دارید و از امتیازات sudo برای نصب بسته های نرم افزاری برخوردار هستید.

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

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

Python & Python Scripting چیست؟

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

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

مبانی اسکریپت نویسی پایتون

در اینجا توضیحی در مورد اصول اسکریپت نویسی پایتون آورده شده است:

  1. متغیرها:
  • در پایتون، یک متغیر برای ذخیره یک مقدار، مانند یک عدد یا یک رشته، استفاده می شود.

  • متغیرها را می توان با استفاده از علامت تساوی (=) اعلام کرد و یک مقدار نسبت داد.

  • برای مثال x = 10 مقدار 10 را به متغیر x نسبت می دهد.

  1. شرایط:
  • در پایتون از شرطی ها برای تصمیم گیری بر اساس یک شرط خاص استفاده می شود.

  • دستور if برای بررسی درستی یک شرط استفاده می شود و از دستور else برای تعیین اینکه در صورت نادرست بودن شرط چه کاری انجام دهیم استفاده می شود.

  • مثلا:

x = 10
if x > 5:
    print("x is greater than 5")
else:
    print("x is less than or equal to 5")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

  • حلقه for برای تکرار روی یک دنباله از مقادیر استفاده می شود، در حالی که حلقه while برای تکرار یک بلوک کد تا زمانی که یک شرط خاص درست است استفاده می شود.

  • مثلا:

# Using a for loop to iterate over a list
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

# Using a while loop to repeat a block of code
x = 0
while x < 10:
    print(x)
    x += 1
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

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

  • مثلا:

# Defining a function to calculate the area of a rectangle
def calculate_rectangle_area(width, height):
    area = width * height
    return area

# Calling the function with different inputs
print(calculate_rectangle_area(3, 4)) # Output: 12
print(calculate_rectangle_area(5, 6)) # Output: 30
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اینها بلوک های اصلی اسکریپت نویسی پایتون هستند و می توان آنها را برای ایجاد برنامه های پیچیده تر ترکیب کرد.

ماژول های پایتون و نحوه استفاده از آنها در اسکریپت ها

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

  1. os مدول:
  • این ماژول راهی برای تعامل با سیستم عامل زیرین فراهم می کند.

  • توابع مانند os.chdir() برای تغییر دایرکتوری کاری فعلی، os.mkdir() برای ایجاد یک دایرکتوری جدید، و os.path.exists() برای بررسی اینکه آیا فایل یا دایرکتوری وجود دارد می توان از آن استفاده کرد.

  • مثال:

import os

# Change the current working directory
os.chdir('/path/to/new/directory')

# Create a new directory
os.mkdir('new_directory')

# Check if a file exists
if os.path.exists('/path/to/file'):
    print('File exists')
else:
    print('File does not exist')
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. datetime مدول:

-این ماژول راهی برای کار با تاریخ و زمان ارائه می دهد.

  • توابع مانند datetime.datetime.now() برای دریافت تاریخ و زمان فعلی، datetime.timedelta() برای محاسبه تفاوت بین دو تاریخ یا زمان و datetime.datetime.strptime() برای تبدیل یک رشته به شی تاریخ یا زمان می توان استفاده کرد.

  • مثال:

import datetime

# Get the current date and time
current_time = datetime.datetime.now()
print(current_time)

# Calculate the difference between two dates or times
time_diff = datetime.timedelta(days=1)
yesterday = current_time - time_diff
print(yesterday)

# Convert a string to a date or time object
date_string = '2023-03-20'
date_object = datetime.datetime.strptime(date_string, '%Y-%m-%d')
print(date_object)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. csv مدول:
  • این ماژول راهی برای خواندن و نوشتن فایل‌های با کاما seperated-value (CSV) فراهم می‌کند.

  • توابع مانند csv.reader() برای خواندن یک فایل CSV، و csv.writer() برای نوشتن در یک فایل CSV، می توان استفاده کرد.

  • مثال:

import csv

# Read a CSV file
with open('data.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

# Write to a CSV file
with open('output.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerow(['Name', 'Age', 'City'])
    writer.writerow(['Alice', '25', 'New York'])
    writer.writerow(['Bob', '30', 'San Francisco'])

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. shutil مدول:
  • ماژول shutil رابط سطح بالاتری را برای کار با فایل ها و دایرکتوری ها نسبت به ماژول os فراهم می کند. توابعی را برای کپی کردن، جابجایی و حذف فایل ها و دایرکتوری ها فراهم می کند.

  • مثلا:

import shutil

# Copy a file from one directory to another
shutil.copy("source/file.txt", "destination/file.txt")

# Move a file from one directory to another
shutil.move("source/file.txt", "destination/file.txt")

# Delete a file
os.remove("file.txt")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. requests مدول:
  • ماژول درخواست‌ها راهی برای ارسال درخواست‌های HTTP و رسیدگی به پاسخ‌ها فراهم می‌کند.

  • می توانید از آن برای دانلود فایل ها، تعامل با API های وب و خراش دادن صفحات وب استفاده کنید.

  • مثال استفاده:

import requests

# Download a file
url = "https://example.com/file.txt"
response = requests.get(url)
with open("file.txt", "wb") as file:
    file.write(response.content)

# Get data from a web API
url = "https://api.example.com/data"
response = requests.get(url, headers={"Authorization": "Bearer YOUR_TOKEN"})
data = response.json()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اینها تنها چند نمونه از ماژول های رایج پایتون و استفاده از آنها هستند. بسیاری از ماژول های دیگر در دسترس هستند که می توانند به شما در انجام وظایف مختلف در اسکریپت های خود کمک کنند. شما می توانید آنها را در فهرست بسته پایتون (PyPI) یا از طریق اسناد پایتون جستجو کنید.

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

1. Web Scraping

  • پایتون یک زبان محبوب برای اسکرپینگ وب است، زیرا کتابخانه‌هایی با کاربری آسان مانند این را فراهم می‌کند BeautifulSoup و requests.

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

import requests
from bs4 import BeautifulSoup

url = "https://www.bbc.com/news"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

headlines = soup.find_all("h3", class_="gs-c-promo-heading__title")
for headline in headlines:
    print(headline.text)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این اسکریپت از کتابخانه درخواست ها برای ارسال یک درخواست HTTP GET به وب سایت BBC News و واکشی محتوای HTML استفاده می کند. سپس از کتابخانه BeautifulSoup برای تجزیه HTML و استخراج عناوین با استفاده از انتخابگر CSS استفاده می کند.

نوشته های مشابه

دیدگاهتان را بنویسید

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

همچنین ببینید
بستن
دکمه بازگشت به بالا