از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از Here Document در bash برنامه نویسی
سرفصلهای مطلب
برای استفاده از اینجا-سند در هر bash اسکریپت، باید از نماد << به دنبال هر شناسه تعیین کننده بعد از هر کدام استفاده کنید bash دستور دهید و HereDoc را با استفاده از همان شناسه تعیین کننده در انتهای متن ببندید. نحو نوشتن HereDoc در زیر نشان داده شده است.
. . .
. . .
HeredocDelimiter
مثال-1: استفاده از متن ساده هردوک
هنگامی که هردوک در هر اسکریپت استفاده می شود، لازم است همان نام را برای جداکننده شروع و پایان نگه دارید. فرض کنید دستور «گربه` و تحدید کننده heredoc است ADDTEXT. ایجاد یک bash فایل اسکریپت به نام heredoc1.bash با کد زیر برای بررسی استفاده ساده از heredoc.
گربه <
توسط Here Document اضافه شده است
ADDTEXT
دستور زیر را برای اجرای اسکریپت اجرا کنید.
خروجی:
پس از اجرای اسکریپت خروجی زیر ظاهر می شود.
مثال-2: استفاده از heredoc با علامت ‘-‘
HereDoc استفاده می کند ‘-‘ نماد برای سرکوب هر فضای برگه از هر خط از متن heredoc. در مثال زیر، برگه در ابتدای هر خط فاصله اضافه می شود و ‘-‘ نماد قبل از جداکننده شروع استفاده می شود. هنگامی که اسکریپت اجرا می شود، تمام فضاهای برگه از ابتدای هر خط حذف می شود، اما هیچ اثری ایجاد نمی کند. روی فضای معمولی ایجاد یک bash فایل به نام heredoc2.bash با اسکریپت زیر برای تست عملکرد ‘-‘.
گربه <<-ADDTEXT2
خط 1: در اینجا سند برای چاپ متن کوتاه مفید است
خط 2: در اینجا می توان از Document برای قالب بندی متن استفاده کرد
خط 3: در اینجا Document می تواند متغیرهای درون متن را چاپ کند
خط 4: در اینجا سند با ‘-‘ فضای برگه را از خط حذف می کند
ADDTEXT2
دستور زیر را برای اجرای اسکریپت اجرا کنید.
خروجی:
پس از اجرای اسکریپت خروجی زیر ظاهر می شود. این برگه فضا از محتوای heredoc حذف شده است.
مثال-3: استفاده از متغیر در متن heredoc
جدید ایجاد کنید bash اسکریپت با کد زیر در اینجا، دو متغیر نامگذاری شده است شروع و پایان اعلام می شوند. این متغیرها در متن heredoc استفاده می شوند. اگر از علامت نقل قول در جداکننده شروع heredoc استفاده کنید، مقدار متغیر در console.
شروع کنید=“سلام به همه”
پایان=“موفق باشید”
گربه <
به سایت بلاگ لینوکس خوش آمدید.
$end
ADDTEXT3
دستور زیر را برای اجرای اسکریپت اجرا کنید.
خروجی:
پس از اجرای اسکریپت خروجی زیر ظاهر می شود. خروجی محتوای heredoc را با مقدار متغیرها نشان می دهد.
مثال-4: یک جدید ایجاد کنید bash فایل با استفاده از HerDoc
در مثال های قبلی، چگونه می توانید از heredoc در هر کدام استفاده کنید bash اسکریپت نشان داده شده است. شما همچنین می توانید یک جدید ایجاد کنید bash فایل با استفاده از heredoc که در قسمت بعدی این آموزش نشان داده شده است. جدید ایجاد کنید bash فایل به نام heredoc4.sh با کد زیر اینجا، NewFile متغیر برای تنظیم نام فایل جدید اعلام شده است bash اسکریپت که پس از اجرا ایجاد خواهد شد heredoc4.sh فایل. پس از اعدام، جدید bash فایل به نام خروجی.ش ایجاد خواهد شد.
NewFile=output.sh
(
گربه < $NewFile
برای تست اسکریپت بالا دستورات زیر را اجرا کنید. دستور اول فایل اسکریپت اصلی را اجرا می کند. دستور دوم محتوای فایل جدید ایجاد شده را نمایش می دهد. فرمان سوم دستور تازه ایجاد شده را اجرا می کند bash فایل.
$ گربه خروجی.ش
$ bash خروجی.ش
خروجی:
پس از اجرای اسکریپت خروجی زیر ظاهر می شود.
مثال-5: استفاده از تابع با heredoc
شما می توانید مقادیر ورودی را به متغیرهای هر تابعی ارسال کنید bash اسکریپت از محتوای heredoc. جدید دیگری ایجاد کنید bash فایل به نام heredoc5.sh برای آزمایش روش استفاده از تابع با heredoc. کد زیر را به فایل اضافه کنید. تابعی به نام BookInfo در اسکریپت اعلام شده است که داده ها را از متن heredoc می گیرد. شش متغیر در تابعی به نامهای ISBN، bookName، authorName، نسخه، انتشار و قیمت اعلام شدهاند. برای تنظیم صحیح مقدار متغیرها، باید ترتیب مقادیر در قسمت heredoc را مطابق با متغیرهای اعلام شده در تابع حفظ کنید. پس از تنظیم داده ها در متغیرهای تابع، ارزش قیمت با 10% تخفیف محاسبه می شود و مقادیر تمام متغیرها در صفحه چاپ می شود. console.
تابعی را که داده ها را از Here Document بازیابی می کند، #اعلام کنید
BookInfo ()
{
خواندن شابک
خواندن نام کتاب
خواندن نام نویسنده
خواندن نسخه
خواندن انتشار
خواندن قیمت
}
# در اینجا قسمت سند را برای ارسال داده به تابع اعلام کنید
BookInfo <
Easy Laravel 5
دبلیو جیسون گیلمور
ویرایش نهم
لیرپاب
100
ADDTEXT5
# مقدار متغیرهای تابع را پس از محاسبه ارزش قیمت با 10% تخفیف چاپ کنید
((قیمت=قیمت دلار–قیمت دلار*10/100))
اکو “$bookName“
اکو “$authorName“
اکو “نسخه $، انتشار $“
اکو “$”قیمت دلار
دستور زیر را برای اجرای اسکریپت اجرا کنید.
خروجی:
در اینجا مقدار متغیر قیمت 100 در نظر گرفته شده است. پس از تنظیم 10% تخفیف روی مقدار قیمت، مقدار 90 تنظیم شده است. پس از اجرا، خروجی زیر در terminal.
مثال-6: دستورات را در هردوک اجرا کنید
ایجاد یک bash فایل به نام heredoc6.bash با اسکریپت زیر برای اجرا “تاریخ”، “pwd”.، و `من کی هستمدستور با `سودودستور.
# با دستور sudo سه دستور داخل محتوای heredoc اضافه کنید
سودو -s <<فرمان
تاریخ
pwd
من کی هستم
فرمان
خروجی:
پس از اجرای اسکریپت فوق خروجی زیر ظاهر می شود. خروجی سه دستور در خروجی چاپ شده است.
مثال-7: استفاده از heredoc برای نوشتن چندین خط در یک فایل
ایجاد یک bash فایل به نام heredoc6.bash با اسکریپت زیر چندین خط در فایل متنی به نام اضافه کنید temp.txt و محتوای فایل را چاپ کنید. پس از اجرای کد سه خط به فایل متنی اضافه می شود.
: این اسکریپت چندین خط خواهد نوشت
در یک فایل متنی
‘
# با استفاده از heredoc چندین خط را در یک فایل بنویسید
گربه > “temp.txt” <<فایل محتوای
Bash یک زبان برنامه نویسی محبوب است.
بسیاری از کارهای اداری را می توان به راحتی انجام داد
با استفاده از bash اسکریپت
فایل محتوای
# محتوای فایل را چاپ کنید
گربه temp.txt
خروجی:
پس از اجرای اسکریپت فوق خروجی زیر ظاهر می شود. خروجی نشان می دهد که سه خط در آن اضافه شده است temp.txt فایل.
مثال-8: استفاده از heredoc با لوله برای جستجو و جایگزینی محتوا
ورودی heredoc نیز می تواند لوله شود. ایجاد یک bash فایل را با اسکریپت زیر برای جستجو و جایگزینی یک کاراکتر خاص از محتوای heredoc. heredoc اول متن اصلی را چاپ می کند و heredoc دوم متن جایگزین شده را چاپ می کند. دستور “sed” در اینجا برای جایگزینی تمام نمونه های کاراکتر استفاده شده است.آ‘ توسط ‘آ‘.
اکو “محتوای اصلی این است:”
گربه <<“اصل”
Bash یک زبان برنامه نویسی پوسته است
HTML یک زبان نشانه گذاری است
جاوا اسکریپت یک زبان برنامه نویسی سمت کلاینت است
اورجینال
# یک خط جدید اضافه کنید
اکو
اکو “محتوا پس از جایگزینی “a” با “A”:”
گربه <<‘جایگزین کردن’ | sed ‘s/a/A/g’
Bash یک زبان برنامه نویسی پوسته است
HTML یک زبان نشانه گذاری است
جاوا اسکریپت یک زبان برنامه نویسی سمت کلاینت است
جایگزین کردن
خروجی:
پس از اجرای اسکریپت فوق خروجی زیر ظاهر می شود. در خروجی، همه ‘a’ با ‘A’ جایگزین شده اند.
مثال-9: استفاده از heredoc برای نظر دادن به بلوک خطوط
یکی از کاربردهای مهم هردوک، اظهار نظر است روی خطوط متعدد از bash اسکریپت ایجاد یک bash فایل با اسکریپت زیر برای پیدا کردن یک سال یک سال کبیسه است یا خیر. هدف از اسکریپت توسط نظرات چند خطی با استفاده از heredoc توضیح داده شده است.
<<چند خطی_نظر
این اسکریپت استفاده می شود پیدا کردن بیرون
یک سال یک سال کبیسه است یا نه
سال کبیسه
چند خطی_نظر
# ارزش سال 4 رقمی را از کاربر بگیرید
اکو -n “مقدار سال چهار رقمی را وارد کنید:”
خواندن سال
# بررسی کنید که مقدار سال گرفته شده یک سال کبیسه است یا نه
اگر [ $(($yr%400)) -eq 0 ]; سپس
اکو “سال دلار یک سال کبیسه است.”
elif [ $(($yr%100)) -eq 0 ]; سپس
اکو “سال دلار سال کبیسه نیست.”
elif [ $(($yr%4)) -eq 0 ]; سپس
اکو “سال دلار یک سال کبیسه است.”
دیگر
اکو “سال دلار سال کبیسه نیست.”
فی
خروجی:
پس از اجرای اسکریپت فوق خروجی زیر ظاهر می شود. خروجی زیر نشان می دهد که سال 2008 یک سال کبیسه است و 2021 یک سال کبیسه نیست.
نتیجه:
کاربردهای مختلف سند heredoc در این آموزش با استفاده از مثال های متعدد نشان داده شده است. می توان از آن با انواع مختلف دستورات پوسته و افزودن نظرات چند خطی در آن استفاده کرد bash اسکریپت استفاده از heredoc برای پاکسازی خواهد شد bash کاربران پس از تمرین نمونه های این آموزش.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 09:17:03