از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
زیر پوسته های Bash
سرفصلهای مطلب
نمونه های مختلف Subshell
روش های مختلف اجرای اسکریپت در زیر پوسته در این قسمت از آموزش نشان داده شده است.
مثال 1: زیر پوسته را با استفاده از نقل قول واحد و نقل قول دوگانه اجرا کنید
یک فایل Bash با اسکریپت زیر ایجاد کنید که تاریخ و زمان فعلی را چاپ می کند. در مرحله بعد، متغیر $strVal با محصور کردن اسکریپت زیر پوسته در داخل گیومه های تکی و نقل قول های دوگانه چاپ می شود.
دستور ‘date’ را در زیر پوسته #چاپ کنید
اکو “امروز است “تاریخ”.“
#متغیر رشته را تعریف کنید
strVal=“زیر پوسته Bash”
#متغیر را در زیر پوسته با استفاده از نقل قول تکی چاپ کنید
اکو “خروجی نقل قول های تک:” ‘$(echo $strVal)’
#متغیر را در زیر پوسته با استفاده از دو نقل قول چاپ کنید
اکو “خروجی دو نقل قول:” “$(echo $strVal)“
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. اسکریپت زیر پوسته زمانی که با گیومه های تکی محصور می شود به صورت رشته ای چاپ می شود. اسکریپت زیر پوسته زمانی اجرا می شود که با گیومه های دوتایی محصور شود:
مثال 2: تمام فایل های پسوند خاص را با استفاده از پوسته فرعی جستجو کنید
یک فایل Bash با اسکریپت زیر ایجاد کنید که پسوند فایل را به عنوان ورودی از کاربر می گیرد. در مرحله بعد، دستور “ls” در زیر پوسته برای جستجوی تمام فایل های آن پسوند خاص اجرا می شود.
اکو -n “نام پسوند فایل را وارد کنید:”
#نام پسوند فایلی که جستجو می شود را انتخاب کنید
خواندن داخلی
#مقدار ورودی را بررسی کنید
اگر [[ $ext == “” ]]; سپس
#پیام خطای چاپ
اکو “هیچ تمدید داده نمی شود.”
دیگر
اکو “نام فایل ها با $ext افزونه:”
#تمام نام فایل ها را با پسوند داده شده چاپ کنید
اکو “$( echo `ls *.$ext` )“
فی
خروجی زیر پس از اجرای اسکریپت با ورودی “txt” ظاهر می شود. با توجه به خروجی، سه فایل متنی در مکان فعلی وجود دارد:
خروجی زیر پس از اجرای اسکریپت با مقدار خالی ظاهر می شود:
مثال 3: عبارت حسابی را در زیر پوسته اجرا کنید
یک فایل Bash با اسکریپت زیر ایجاد کنید که در آن از متغیری به همین نام در پوسته اصلی و زیرشل استفاده شده است. عملیات حسابی در پوسته اصلی و زیر پوسته تعریف شده است.
#متغیر پوسته والد را تعریف کنید
عدد=10
#نتیجه را بر اساس چاپ کنید روی متغیر پوسته والد
((نتیجه=$شماره+5))
اکو “مجموع $شماره+5=$نتیجه“
#یک متغیر زیر پوسته با همان نام پوسته والد ایجاد کنید
( عدد=20 ; ((نتیجه=$شماره+10)); اکو “مجموع $شماره+5=$نتیجه“ )
#نتیجه را بر اساس چاپ کنید روی دوباره متغیر پوسته والد
اکو “مجموع $شماره+5=$نتیجه“
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. اولین و آخرین خروجی نتیجه پوسته اصلی را نشان می دهد. خروجی دوم نتیجه زیر پوسته را نشان می دهد. متغیر پوسته اصلی توسط متغیر پوسته فرعی اصلاح نمی شود:
مثال 4: چند دستور را در زیر پوسته اجرا کنید
یک فایل Bash با اسکریپت زیر ایجاد کنید که خروجی دستور “echo” را به دستور “sed” ارسال می کند که مقدار رشته منطبق را با رشته دیگری جایگزین می کند. خروجی دستور “echo” “جاوا اسکریپت” است. بنابراین، این مقدار با “جاوا” و “جاوا اسکریپت” مقایسه می شود. اگر مطابقت یافت شود، رشتههای منطبق با رشته «نوع» جایگزین میشوند.
#مقدار رشته را تعریف کنید
strVal=“جاوا اسکریپت”
#مقدار رشته اصلی را چاپ کنید
اکو “مقدار رشته: $strVal“
#مقدار زیر پوسته را چاپ کنید
اکو -n “مقدار زیر پوسته:”
اکو “$(echo $strVal | sed ‘s|جاوا|نوع جاوا اسکریپت|’)“
خروجی زیر پس از اجرای اسکریپت ظاهر می شود. با توجه به خروجی، رشته “Java” با رشته “Type” جایگزین می شود. خروجی زیرشل “JavaScript TypeScript” است:
نتیجه
یک یا چند دستور یا اسکریپت را می توان با استفاده از پوسته فرعی بدون تأثیر روی پوسته اصلی اجرا کرد. اهداف استفاده از زیر پوسته در این آموزش با استفاده از مثال های متعدد توضیح داده شده است. انواع مختلفی از وظایف مانند جستجوی فایل ها، محاسبه مجموع اعداد، جایگزینی رشته ها و غیره توسط زیر پوسته در مثال های داده شده انجام می شود. مفهوم استفاده از پوسته فرعی به درستی نشان داده شده است و کاربران جدید Bash اکنون پس از خواندن این آموزش می توانند از زیر پوسته استفاده کنند.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-28 17:50:04