از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
حل مشکل: تعویض بد Bash
سرفصلهای مطلب
بیایید ببینیم چگونه می توانیم اسکریپت پوسته خود را باعث ایجاد این خطا کنیم و چگونه آن را برطرف کنیم. با جدید شروع کنید bash فایل با کوئری «touch» اوبونتو ایجاد شده و آن را در «GNU ویرایشگر نانو.
نانو ساب.ش
مثال 01
اولین دلیل برای خطای بد جایگزینی استفاده از نحو کد اشتباه است. بیایید نگاهی به این بیندازیم. شروع از اول bash کد، ما اضافه کرده ایم bash پشتیبانی در خط اول از bash اسکریپت، به عنوان مثال، “#!/bin/bash”. پس از این، یک متغیر ساده “V” را با دستور لیست اوبونتو به عنوان مقدار مقداردهی اولیه کردیم. این مقدار در داخل براکت های فرفری و با علامت “$” درج شده است تا آن را به عنوان یک فرمان پوسته در نظر بگیرید. پس از این، دستور echo اینجا است تا به سادگی مقدار متغیر “v” را نمایش دهد روی پوسته. کد ما کامل و آماده استفاده است.
ما نجات دادیم bash کد و برگشت به terminal پس از استفاده از Ctrl+S و Ctrl+X به ترتیب. ما این تازه ایجاد شده را اجرا کرده ایم bash فایل اسکریپت با “bash” دستورالعمل و “جایگزینی بد” را در اینجا دریافت کردم روی صفحه نمایش ما این خطا به دلیل استفاده از براکت های مجعد “{}” در اطراف دستورالعمل لیست در کد رخ داده است.
بیایید سعی کنیم کد خود را برای رفع این خطا به روز کنیم. بنابراین، براکتهای فرفری را از خط دوم کد حذف کرده و با براکتهای ساده «()» که در زیر ارائه شده است، جایگزین میکنیم. به طور کلی، کد ثابت می ماند زیرا مشکلی در کد وجود ندارد. اکنون این کد را ذخیره کنید.
پس از خروج از GNU ویرایشگر نانو، ما آن را اجرا خواهیم کرد bash فایل “sub.sh” کد به روز شده با استفاده از “bash” دستورالعملی که در زیر ارائه شده است. به نظر می رسد که خطای جایگزینی بد پس از به روز رسانی کد حذف شده است و دستورالعمل لیست درج شده در متغیر “v” با موفقیت اجرا شده است. دستور list تمام محتویات دایرکتوری خانه فعلی را نمایش می دهد، به عنوان مثال، فایل ها و پوشه ها، روی صفحه نمایش پوسته ما
مثال 02
یکی دیگر از دلایل بروز خطاهای تعویض بد در bash استفاده از فضاهای غیر ضروری هنگام اجرای برخی متغیرها است. بنابراین، ما اضافه کرده ایم bash یک متغیر “V” را با دستورالعمل لیست به عنوان مقداری که توسط براکت های ساده و یک علامت دلاری “$” نگهداری می شود، پشتیبانی و مقداردهی اولیه کرد. پس از این، ما از دستور “echo” برای نمایش مقدار متغیر “v” استفاده می کنیم. اما متغیر “V” را در عبارت “echo” به همراه “space” در پرانتز اضافه کردهایم.
پس از ذخیره این کد، این را اجرا کرده ایم bash فایل با “bash” پرس و جو در ما terminal، همانطور که در زیر ارائه شده است. را برمی گرداند bash تعویض در 3rd خط فیلمنامه
برای حذف خطا از کد خود، باید کد خود را به روز کنیم. بنابراین، ما فایل را دوباره باز کردهایم و فضای اضافی درون براکتهای فرفری عبارت «echo» را مانند زیر حذف کردهایم.
حالا که کد به روز شد و فضای خالی حذف شد، باید این فایل را با کد اجرا کنیم bash دستورالعمل ارائه شده در زیر پس از اجرای فایل، خطای جایگزینی بد حذف شده و دستورالعمل لیست مشخص شده در متغیر “V” با موفقیت اجرا شده است. روی را terminal پس از اجرای دستور “echo” در bash اسکریپت لیستی از فایل ها و پوشه های دایرکتوری خانگی فعلی نمایش داده می شود روی صفحه پوسته ما در زیر.
مثال 03
این خطا همچنین ممکن است به دلیل استفاده از کاراکترهای ناخواسته مکرر در کد رخ دهد. بنابراین، ما یک کد به روز شده را برای دریافت این خطا امتحان کرده ایم روی پوسته. برای این کار، باید از کاراکتر «$» دو بار در عبارت «echo» استفاده کنیم تا متغیر «V» را برای اجرا مشخص کنیم که نحو اشتباهی برای انجام این کار است. این متغیر “v” حاوی دستورالعمل لیست ساده به عنوان مقدار آن است. از آنجایی که ما از علامت دوگانه «$» برای ورود و خروج از براکتهای فرفری در عبارت «echo» استفاده کردهایم، ما را به یک خطای جایگزینی بد سوق میدهد. روی اجرا.
پس از اجرای کد با bash دستورالعمل، ما با یک خطای تعویض بد در خط 3 مواجه شدیم bash اسکریپت روی صفحه نمایش پوسته ما
بیایید با به روز رسانی خط 3 یک کد، خطای بد تعویض را از اجرا حذف کنیم. ما علامت داخلی “$” را در داخل براکت های فرفری از عبارت “echo” حذف کرده ایم.
پس از حذف علامت $، دوباره کد را اجرا کردیم روی پوسته با “bash” فرمان خطا حذف شد و لیست فایل ها و پوشه ها نمایش داده شد.
مثال 04
بیایید آخرین اما نه کمترین مثال خود را از این مقاله داشته باشیم. ما از دو متغیر x و y استفاده کردهایم که محل دایرکتوری را بهعنوان مقدارشان در بر میگیرد. در عبارت “echo” این کد، ما از هر دو متغیر برای چاپ و جداسازی با علامت “/” استفاده کردهایم. هر متغیر حاوی یک علامت دلار به همراه خود است، در حالی که یک علامت دلار واحد نیز در خارج از براکت های فرفری استفاده می شود.
استفاده از براکت های فرفری و علامت دلار باعث خطای بد تعویض شد.
بنابراین، براکت های فرفری و علامت دلار خارجی را مانند تصویر زیر حذف کرده ایم.
این مقدار زمانی هر دو متغیر نمایش داده شده است.
نتیجه
این همه در مورد تصویر ایجاد یک است bash به اشتباهاتی که باعث بروز خطای بد جایگزینی در حین اجرا می شود کد می نویسد. ما بایدها و نبایدها را برای جلوگیری از خطا از طریق اجرای متفاوت مورد بحث قرار داده ایم bash مثال ها.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 00:00:04