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

سرور مجازی NVMe

زیر پوسته های Bash

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


گاهی اوقات، لازم است که یک یا چند دستور یا اسکریپت را در پس زمینه اجرا کنید. این کار را می توان با نوشتن تمام دستورات یا اسکریپت ها در یک فایل اسکریپت و اجرای فایل با استفاده از علامت علامت (&) یا اجرای دستورات یا اسکریپت ها در زیر پوسته از پوسته فعلی انجام داد. پوسته فرعی را می توان برای اجرای چندین دستور یا اسکریپت با احاطه کردن با $() یا backticks (`) استفاده کرد. روش های استفاده از زیر پوسته Bash در این آموزش نشان داده شده است.

نمونه های مختلف Subshell

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

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

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

#!/bin/bash

دستور ‘date’ را در زیر پوسته #چاپ کنید

اکو “امروز است “تاریخ”.

#متغیر رشته را تعریف کنید

strVal=“زیر پوسته Bash”

#متغیر را در زیر پوسته با استفاده از نقل قول تکی چاپ کنید

اکو “خروجی نقل قول های تک:” ‘$(echo $strVal)’

#متغیر را در زیر پوسته با استفاده از دو نقل قول چاپ کنید

اکو “خروجی دو نقل قول:” $(echo $strVal)

پیشنهاد می‌کنیم بخوانید:  چگونه رفع کنیم”bash: /usr/sbin/ifconfig: چنین فایل یا دایرکتوری وجود ندارد. روی لینوکس

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. اسکریپت زیر پوسته زمانی که با گیومه های تکی محصور می شود به صورت رشته ای چاپ می شود. اسکریپت زیر پوسته زمانی اجرا می شود که با گیومه های دوتایی محصور شود:

زیر پوسته های Bash

مثال 2: تمام فایل های پسوند خاص را با استفاده از پوسته فرعی جستجو کنید

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

#!/bin/bash

اکو -n “نام پسوند فایل را وارد کنید:”

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

خواندن داخلی

#مقدار ورودی را بررسی کنید

اگر [[ $ext == “” ]]; سپس

#پیام خطای چاپ

اکو “هیچ تمدید داده نمی شود.”

دیگر

اکو “نام فایل ها با $ext افزونه:”

#تمام نام فایل ها را با پسوند داده شده چاپ کنید

اکو $( echo `ls *.$ext` )

فی

خروجی زیر پس از اجرای اسکریپت با ورودی “txt” ظاهر می شود. با توجه به خروجی، سه فایل متنی در مکان فعلی وجود دارد:

زیر پوسته های Bashزیر پوسته های Bash

خروجی زیر پس از اجرای اسکریپت با مقدار خالی ظاهر می شود:

زیر پوسته های Bashزیر پوسته های Bash

مثال 3: عبارت حسابی را در زیر پوسته اجرا کنید

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

#!/bin/bash

#متغیر پوسته والد را تعریف کنید

عدد=10

#نتیجه را بر اساس چاپ کنید روی متغیر پوسته والد

((نتیجه=$شماره+5))

اکو “مجموع $شماره+5=$نتیجه

#یک متغیر زیر پوسته با همان نام پوسته والد ایجاد کنید

( عدد=20 ; ((نتیجه=$شماره+10)); اکو “مجموع $شماره+5=$نتیجه )

پیشنهاد می‌کنیم بخوانید:  روش استفاده از متغیر در دستور awk

#نتیجه را بر اساس چاپ کنید روی دوباره متغیر پوسته والد

اکو “مجموع $شماره+5=$نتیجه

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. اولین و آخرین خروجی نتیجه پوسته اصلی را نشان می دهد. خروجی دوم نتیجه زیر پوسته را نشان می دهد. متغیر پوسته اصلی توسط متغیر پوسته فرعی اصلاح نمی شود:

زیر پوسته های Bashزیر پوسته های Bash

مثال 4: چند دستور را در زیر پوسته اجرا کنید

یک فایل Bash با اسکریپت زیر ایجاد کنید که خروجی دستور “echo” را به دستور “sed” ارسال می کند که مقدار رشته منطبق را با رشته دیگری جایگزین می کند. خروجی دستور “echo” “جاوا اسکریپت” است. بنابراین، این مقدار با “جاوا” و “جاوا اسکریپت” مقایسه می شود. اگر مطابقت یافت شود، رشته‌های منطبق با رشته «نوع» جایگزین می‌شوند.

#!/bin/bash

#مقدار رشته را تعریف کنید

strVal=“جاوا اسکریپت”

#مقدار رشته اصلی را چاپ کنید

اکو “مقدار رشته: $strVal

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

اکو -n “مقدار زیر پوسته:”

اکو $(echo $strVal | sed ‘s|جاوا|نوع جاوا اسکریپت|’)

خروجی زیر پس از اجرای اسکریپت ظاهر می شود. با توجه به خروجی، رشته “Java” با رشته “Type” جایگزین می شود. خروجی زیرشل “JavaScript TypeScript” است:


زیر پوسته های Bashزیر پوسته های Bash

نتیجه

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

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

زمان انتشار: 1402-12-28 17:50:04

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

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

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