وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

Bash Scripting: نمادها

0 3
زمان لازم برای مطالعه: 3 دقیقه


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

نماد: <

نماد < برای تغییر مسیر ورودی استفاده می شود. برای مثال می توان از فایل ها به عنوان ورودی استفاده کرد.

مثلا:

#! /صندوقچه/bash

گربه < file.txt

در این حالت file.txt به عنوان ورودی گرفته می شود و دستور cat سپس آن را خارج می کند.

بدون عنوان_14

نماد: >

این نماد که به عنوان عملگر تغییر مسیر فایل شناخته می شود، معمولاً برای تغییر مسیر محتویات یک دستور/فایل به دیگری استفاده می شود. رونویسی آی تی.

مثلا:

#! /صندوقچه/bash

اکو “سلام دنیا’ > file.txt

بدون عنوانبدون عنوان

در اینجا، نماد > شبیه 1> است. این به این دلیل است که 1 یک توصیف کننده فایل برای خروجی استاندارد است. لطفا توجه داشته باشید که توضیحات فایل به شرح زیر است:

0 – ورودی استاندارد، stdin

1 – خروجی استاندارد، stdout

2 – خطای استاندارد، stderr

در سناریوی قبلی، فلش تک رو به جلو معادل 1> بود. با این حال، ما همچنین می توانیم 2> را بنویسیم تا آن را به خطای استاندارد ارسال کنیم.

مثلا:

#! /صندوقچه/bash

mcat file.txt 2> file2.txt

در اینجا، 2> به این معنی است که خطا در file2.txt ریخته می شود.

بدون عنوان 2بدون عنوان 2

نماد: >>

علامت >> برای الحاق و نه برای جایگزینی استفاده می شود! در حالی که از >> برای الحاق استفاده می شود، عملگر تغییر مسیر فایل، همه چیز را جایگزین یا بازنویسی می کند.

مثلا:

#! /صندوقچه/bash

اکو “این خط دوم است” >> file.txt

اکو “این خط سوم است” >> file.txt

پیشنهاد می‌کنیم بخوانید:  چگونه طول آرایه را در Bash پیدا کنیم

دومی دو خط را به فایلی به نام file.txt اضافه می کند. نتیجه file.txt به صورت زیر خواهد بود:

بدون عنوان3بدون عنوان3

سمبل: #

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

#! /صندوقچه/bash

# این اراده dump خط داخل فایل

اکو “این یک است فایل> file.txt

بدون عنوان4بدون عنوان4

برخلاف #، که یک خطی است، نظرات چند خطی بیشتر شبیه این هستند.

#! /صندوقچه/bash

:’

این بخش نظرات است

این خط اول است

این خط دوم است

اکو “سلام دنیا”

بدون عنوان 5بدون عنوان 5

نماد: $#

نماد $# برای بازیابی طول یا تعداد آرگومان های ارسال شده از طریق خط فرمان استفاده می شود. هنگامی که نماد $@ یا به سادگی $1، $2 و غیره استفاده می شود، ما درخواست می کنیم command-line مقادیر آنها را در یک متغیر وارد کرده و ذخیره کنید. نماد $# برای بازیابی تعداد کل آرگومان های ارسال شده استفاده می شود.

مثلا:

bash اکو $#سلام دوباره دنیا

دومی باید مقدار 2 را حذف کند زیرا 3 عنصر وجود دارد (سلام، جهان و دوباره).

بدون عنوان 7بدون عنوان 7

نماد: &>

این نماد هم خروجی استاندارد و هم خطای استاندارد را تغییر مسیر می دهد.

مثلا؛

bash ls -لا &> file.txt’

در این حالت، نماد &> هم خروجی استاندارد و هم خطای استاندارد را به فایلی به نام file.txt هدایت می کند. بنابراین، هم خروجی تولید شده و هم خطای ایجاد شده در یک فایل قرار می گیرند.

بدون عنوان 6بدون عنوان 6

نماد: \< و \>

شما باید طول رشته یا طول کاراکتر را با هم مقایسه کنید. این کار را می توان از طریق نمادهای \< و \> انجام داد. از این دو علامت برای مقایسه طول کاراکترها استفاده می شود.

مثلا:

#! /صندوقچه/bash

آ=”گربه

ب=”سیاهگوش

اگر [ a \< b ]

سپس

اکو “a کوتاه تر از b است”

دیگر

اکو “a طولانی تر از b است”

فی

در این مورد، کلمه ذخیره شده در a – یا cat – دارای طول کاراکتر 3 است، در حالی که کلمه ذخیره شده در b – یا lynx – دارای طول کاراکتر 4 است. بنابراین پاسخ باید این باشد که “a کوتاهتر از b است. ”

بدون عنوان 8بدون عنوان 8

نماد: ^^، ^ و،،

برخی از نمادها برای تغییر حروف کاراکترها عمل می کنند.

^^ – برای تبدیل همه کاراکترها به حروف بزرگ

پیشنهاد می‌کنیم بخوانید:  چگونه خطوط را با استفاده از دستور SED از یک فایل حذف کنم؟

^ – برای تبدیل حرف اول به حروف بزرگ

,, — برای تبدیل همه کاراکترها به حروف کوچک

مثلا:

#! /صندوقچه/bash

آ=”گربه

ب=”سیاهگوش

ج=”اژدها”

اکو ${a^^}

اکو ${b^}

اکو ${c,,}

بدون عنوان 9بدون عنوان 9

نماد: $@ یا $*

نماد $@ معادل $* است که معادل $1 $2 $3 $4 است…

سابق:

#! /صندوقچه/bash

اکو 1 دلار 2 دلار 3 دلار 4 دلار 5 دلار

# دومی معادل echo $@ است

در این مثال، $1، $2، $3، $4 و $5 ورودی های خط فرمان هستند. یا می‌توانستیم موارد زیر را بنویسیم:

#! /صندوقچه/bash

اکو $@

یا

#! /صندوقچه/bash

اکو $*

بدون عنوان_10بدون عنوان_10

نماد: دلار؟

این نماد خاص – $؟ – برای دریافت وضعیت خروج از دستوری که قبلاً ارسال شده است استفاده می شود.

سابق:

#! /صندوقچه/bash

اکو “سلام دنیا” > file.txt

اکو دلار؟

وضعیت خروج 0 نشان می دهد که process با موفقیت تکمیل شد.

Untitled_11Untitled_11

نماد: $$

نماد $$ PID پوسته فعلی را ذخیره می کند.

مثلا:

#! /صندوقچه/bash

اکو $$

در مورد من، مقدار 2443 را چاپ کرد. این PID پوسته است.

بدون عنوان_12بدون عنوان_12

نماد: 2>&1

نماد 2>&1 هم خروجی استاندارد و هم خطای استاندارد را به خروجی استاندارد هدایت می کند.

مثلا:

#! /صندوقچه/bash

ls 2>&1 > file.txt

در این حالت تمام خروجی استاندارد و در صورت ایجاد خطا، خطای استاندارد هر دو به فایلی به نام file.txt هدایت می شود.

بدون عنوان_13بدون عنوان_13

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

کد نویسی مبارک!

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

زمان انتشار: 1402-12-30 04:01:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید