از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
تفاوت بین Printf و Echo در Bash چیست؟
سرفصلهای مطلب
مثال 01:
برای تاکید و مشاهده عملکرد دستورات printf و echo، اجازه دهید اولین مثال ساده و آسان خود را انجام دهیم. شما باید در را باز کنید console برنامه پوسته برای انجام این کار. برای این کار از “Ctrl+Alt+T” استفاده کنید. روی صفحه دسکتاپ سیستم عامل لینوکس اوبونتو 20.04 شما. را console چند لحظه دیگر برنامه باز می شود و برای آن نیازی نیست زیاد منتظر بمانید. بعد از terminal باز شده است، ما هر دو عبارت “printf” و “echo” را جداگانه اجرا می کنیم تا ببینیم چگونه به درستی کار می کنند. بنابراین، ما “printf” را امتحان کردیم روی پوسته ابتدا تعداد کاراکترهای یک رشته “Linux” را چاپ می کند. روی پوسته ما
این دستور با پرچم “-m” به همراه کلمه کلیدی “wc” استفاده شده است. این دستور در تصویر زیر آمده است. پس از اجرای این دستور با فشردن کلید “Enter” به عدد 5 رسیدیم. این به این معنی است که “printf” فقط شامل 5 حرف در آن است. از آنجایی که printf یک دستور استاندارد است، به همین دلیل است که آرگومان ها را در یک فرم قالب بندی شده استاندارد در حین کنترل نمایش می دهد.
بیایید اکنون نگاهی به بیانیه “پژواک” بیندازیم. بنابراین، نحو کلی برای دستور یکسان خواهد بود، اما عبارت “echo” به جای “printf” در اینجا استفاده می شود. رشته ارائه شده در دستور نیز یکسان است. وقتی دستور را اجرا می کنیم روی را console، در نتیجه عدد 6 را نمایش می دهد. چرا وقتی یک رشته فقط 5 کاراکتر دارد این اتفاق می افتد؟ این به این دلیل است که عبارت “echo” همچنین “خط جدید” را به عنوان کاراکتر خود با توجه به bash راهنمای استاندارد صفحه مدیریت “echo”. اگر قبل یا بعد از رشته مقداری فاصله اضافه کنیم، آن را نیز به عنوان یک کاراکتر در نظر می گیرد.
مثال 02: استفاده از Printf
بیایید ابتدا عملکرد عبارت printf را در مثال جدید خود ببینیم. جدید ایجاد کنید bash فایل “test.sh” را با استفاده از یک فرمان نانو لمسی و به دنبال آن دستور “nano” در پوسته تشکیل دهید. دستور nano برای باز کردن فایل در ویرایشگر “Nano” استفاده خواهد شد. پس از باز شدن فایل، ما آن را اضافه کردیم bash پسوند ابتدا در خط اول یک فایل. متغیر “str” با مقدار رشته طولانی در آن مقداردهی اولیه شده است. ما یک متغیر داخلی “IFS” را برای استفاده از فضا به عنوان مقدار جداکننده آن اعلام کرده ایم.
سپس از دستور “read” در خط بعدی استفاده کرده ایم تا مقادیر یک متغیر رشته ای را به صورت آرایه خوانده و در متغیر “Arr” ذخیره کنیم. برای این منظور از پرچم “-ra” استفاده شده است. پس از این، از دستور echo در اینجا استفاده می شود تا اندازه یک متغیر آرایه “Arr” را به ما اطلاع دهد. حلقه “for” برای تکرار هر کلمه از یک متغیر رشته و نمایش آن مقداردهی اولیه شده است روی پوسته با استفاده از عبارت printf. همانطور که می دانیم printf به طور خودکار خط بعدی را به عنوان کاراکتر بعدی خود نمی گیرد، بنابراین برای انجام این کار از کاراکتر “\n” در دستور printf استفاده کرده ایم. حلقه در اینجا به پایان می رسد و کد با کمک کلید میانبر “Ctrl+S” ذخیره می شود.
برای مشاهده نتایج دستور printf، فایل را با ” اجرا کنیدbash” دستور کار را انجام دهید. خروجی اندازه یک آرایه را نشان می دهد، یعنی 9. پس از آن، هر کلمه از یک رشته با استفاده از حلقه “for” تکرار شده و نمایش داده می شود. روی را terminal به طور جداگانه در هر خط بعدی این کار با استفاده از “\n” در عبارت “printf” انجام شده است. در غیر این صورت ممکن است این اتفاق نیفتاده باشد.
مثال 03: استفاده از اکو
در این مثال جدید، ما کارکرد عبارت “echo” را در آن نشان خواهیم داد bash اسکریپت بنابراین، ما همان “test.sh” را با کمک دستور “nano” در پوسته باز کرده ایم console. فایل در ویرایشگر نانو باز می شود. تمام کدها بدون تغییر باقی ماندند، به عنوان مثال، bash پشتیبانی، رشته «str»، متغیر IFS، دستور خواندن و حلقههای «for». تنها تغییری که باید انجام دهید این است: کلمه “printf” را با کلمه کلیدی “echo” جایگزین کنید bash اسکریپت
می توانید ببینید که ما همچنین “\n” را در عبارت “echo” برای دریافت اضافه کرده ایم روی خط جدید همانطور که همه ما می دانیم که عبارت “echo” همیشه خط جدید را به عنوان یک کاراکتر اضافی در نظر می گیرد. بنابراین، خروجی را به این صورت قالب بندی نمی کند.
بیایید کد را اجرا کنیم تا نتایج را ببینیم. به جای ایجاد شکاف 1 خط جدید، دستور echo “\n” را به عنوان یک کاراکتر اضافی در نظر می گیرد. بنابراین، خروجی شبیه چیزی زیر است.
بیایید کد را به روز کنیم تا نتایج مورد نیاز را دریافت کنیم. بنابراین، پس از باز کردن فایل، کاراکتر “\n” را از رشته دستور echo حذف کردیم. کد را ذخیره کرد و از فایل خارج شد.
پس از اجرای کد به روز شده این بار، ما دوباره اندازه یک آرایه رشته ای را به عنوان “9” دریافت کردیم. پس از آن، تمام کلمات یک آرایه هر کدام به صورت جداگانه نمایش داده می شوند روی خط بعدی
نتیجه:
این راهنما حاوی بیش از یک مثال برای نشان دادن عملکرد و تفاوت عبارات “printf” و “echo” است. ترجیحاً از عبارت printf در داخل استفاده کنید bash زیرا از آنجایی که “پژواک” قطب ها را جدا از هم رفتار می کند، استانداردتر است روی دیگر پلتفرم ها
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 08:21:03