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

سرور مجازی NVMe

تفاوت بین Printf و Echo در Bash چیست؟

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


ممکن است بخواهیم نتیجه یک عملیات اوبونتو را به روشی خاص سازماندهی کنیم. شاید باید از نتایج متورم خودداری کنیم و اطلاعات را به سبک مختصر ارائه کنیم. دستورات echo و printf نیز ساخته شده اند. Printf ایجاد یک رشته قالب بندی را فراهم می کند و در صورت عدم موفقیت، وضعیت خروج غیر صفر را ارائه می دهد. در حالی که اکو معمولاً با وضعیت 0 خارج می‌شود و معمولاً ورودی‌هایی را که با کاراکتر انتهای خط در این نتیجه استاندارد قرار دارند، خروجی می‌دهد. “printf” گزینه های بیشتری را برای فرمت خروجی به شما می دهد تا “echo”. در طول این درس کوتاه، به روش استایل دادن به نتایج آن خواهیم پرداخت terminal با استفاده از دستورالعمل های echo و printf روی سیستم لینوکس اوبونتو 20.04.

مثال 01:

برای تاکید و مشاهده عملکرد دستورات printf و echo، اجازه دهید اولین مثال ساده و آسان خود را انجام دهیم. شما باید در را باز کنید console برنامه پوسته برای انجام این کار. برای این کار از “Ctrl+Alt+T” استفاده کنید. روی صفحه دسکتاپ سیستم عامل لینوکس اوبونتو 20.04 شما. را console چند لحظه دیگر برنامه باز می شود و برای آن نیازی نیست زیاد منتظر بمانید. بعد از terminal باز شده است، ما هر دو عبارت “printf” و “echo” را جداگانه اجرا می کنیم تا ببینیم چگونه به درستی کار می کنند. بنابراین، ما “printf” را امتحان کردیم روی پوسته ابتدا تعداد کاراکترهای یک رشته “Linux” را چاپ می کند. روی پوسته ما

این دستور با پرچم “-m” به همراه کلمه کلیدی “wc” استفاده شده است. این دستور در تصویر زیر آمده است. پس از اجرای این دستور با فشردن کلید “Enter” به عدد 5 رسیدیم. این به این معنی است که “printf” فقط شامل 5 حرف در آن است. از آنجایی که printf یک دستور استاندارد است، به همین دلیل است که آرگومان ها را در یک فرم قالب بندی شده استاندارد در حین کنترل نمایش می دهد.

$ printf ‘لینوکس’ | دستشویی -m

تفاوت بین Printf و Echo در Bash چیست؟

بیایید اکنون نگاهی به بیانیه “پژواک” بیندازیم. بنابراین، نحو کلی برای دستور یکسان خواهد بود، اما عبارت “echo” به جای “printf” در اینجا استفاده می شود. رشته ارائه شده در دستور نیز یکسان است. وقتی دستور را اجرا می کنیم روی را console، در نتیجه عدد 6 را نمایش می دهد. چرا وقتی یک رشته فقط 5 کاراکتر دارد این اتفاق می افتد؟ این به این دلیل است که عبارت “echo” همچنین “خط جدید” را به عنوان کاراکتر خود با توجه به bash راهنمای استاندارد صفحه مدیریت “echo”. اگر قبل یا بعد از رشته مقداری فاصله اضافه کنیم، آن را نیز به عنوان یک کاراکتر در نظر می گیرد.

$ اکو ‘لینوکس’ | دستشویی -m

تفاوت بین Printf و Echo در Bash چیست؟تفاوت بین Printf و Echo در Bash چیست؟

مثال 02: استفاده از Printf

بیایید ابتدا عملکرد عبارت printf را در مثال جدید خود ببینیم. جدید ایجاد کنید bash فایل “test.sh” را با استفاده از یک فرمان نانو لمسی و به دنبال آن دستور “nano” در پوسته تشکیل دهید. دستور nano برای باز کردن فایل در ویرایشگر “Nano” استفاده خواهد شد. پس از باز شدن فایل، ما آن را اضافه کردیم bash پسوند ابتدا در خط اول یک فایل. متغیر “str” ​​با مقدار رشته طولانی در آن مقداردهی اولیه شده است. ما یک متغیر داخلی “IFS” را برای استفاده از فضا به عنوان مقدار جداکننده آن اعلام کرده ایم.

پیشنهاد می‌کنیم بخوانید:  Bash 'mkdir' مسیر موجود نیست

سپس از دستور “read” در خط بعدی استفاده کرده ایم تا مقادیر یک متغیر رشته ای را به صورت آرایه خوانده و در متغیر “Arr” ذخیره کنیم. برای این منظور از پرچم “-ra” استفاده شده است. پس از این، از دستور echo در اینجا استفاده می شود تا اندازه یک متغیر آرایه “Arr” را به ما اطلاع دهد. حلقه “for” برای تکرار هر کلمه از یک متغیر رشته و نمایش آن مقداردهی اولیه شده است روی پوسته با استفاده از عبارت printf. همانطور که می دانیم printf به طور خودکار خط بعدی را به عنوان کاراکتر بعدی خود نمی گیرد، بنابراین برای انجام این کار از کاراکتر “\n” در دستور printf استفاده کرده ایم. حلقه در اینجا به پایان می رسد و کد با کمک کلید میانبر “Ctrl+S” ذخیره می شود.

تفاوت بین Printf و Echo در Bash چیست؟تفاوت بین Printf و Echo در Bash چیست؟

برای مشاهده نتایج دستور printf، فایل را با ” اجرا کنیدbash” دستور کار را انجام دهید. خروجی اندازه یک آرایه را نشان می دهد، یعنی 9. پس از آن، هر کلمه از یک رشته با استفاده از حلقه “for” تکرار شده و نمایش داده می شود. روی را terminal به طور جداگانه در هر خط بعدی این کار با استفاده از “\n” در عبارت “printf” انجام شده است. در غیر این صورت ممکن است این اتفاق نیفتاده باشد.

$ bash test.sh

تفاوت بین Printf و Echo در Bash چیست؟تفاوت بین Printf و Echo در Bash چیست؟

مثال 03: استفاده از اکو

در این مثال جدید، ما کارکرد عبارت “echo” را در آن نشان خواهیم داد bash اسکریپت بنابراین، ما همان “test.sh” را با کمک دستور “nano” در پوسته باز کرده ایم console. فایل در ویرایشگر نانو باز می شود. تمام کدها بدون تغییر باقی ماندند، به عنوان مثال، bash پشتیبانی، رشته «str»، متغیر IFS، دستور خواندن و حلقه‌های «for». تنها تغییری که باید انجام دهید این است: کلمه “printf” را با کلمه کلیدی “echo” جایگزین کنید bash اسکریپت

پیشنهاد می‌کنیم بخوانید:  یافتن رشته ها در فایل های متنی با استفاده از grep با عبارت منظم

می توانید ببینید که ما همچنین “\n” را در عبارت “echo” برای دریافت اضافه کرده ایم روی خط جدید همانطور که همه ما می دانیم که عبارت “echo” همیشه خط جدید را به عنوان یک کاراکتر اضافی در نظر می گیرد. بنابراین، خروجی را به این صورت قالب بندی نمی کند.

تفاوت بین Printf و Echo در Bash چیست؟تفاوت بین Printf و Echo در Bash چیست؟

بیایید کد را اجرا کنیم تا نتایج را ببینیم. به جای ایجاد شکاف 1 خط جدید، دستور echo “\n” را به عنوان یک کاراکتر اضافی در نظر می گیرد. بنابراین، خروجی شبیه چیزی زیر است.

$ bash test.sh

تفاوت بین Printf و Echo در Bash چیست؟تفاوت بین Printf و Echo در Bash چیست؟

بیایید کد را به روز کنیم تا نتایج مورد نیاز را دریافت کنیم. بنابراین، پس از باز کردن فایل، کاراکتر “\n” را از رشته دستور echo حذف کردیم. کد را ذخیره کرد و از فایل خارج شد.

تفاوت بین Printf و Echo در Bash چیست؟تفاوت بین Printf و Echo در Bash چیست؟

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

$ bash test.sh

تفاوت بین Printf و Echo در Bash چیست؟تفاوت بین Printf و Echo در Bash چیست؟

نتیجه:

این راهنما حاوی بیش از یک مثال برای نشان دادن عملکرد و تفاوت عبارات “printf” و “echo” است. ترجیحاً از عبارت printf در داخل استفاده کنید bash زیرا از آنجایی که “پژواک” قطب ها را جدا از هم رفتار می کند، استانداردتر است روی دیگر پلتفرم ها

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

زمان انتشار: 1402-12-30 08:21:03

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

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

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