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

سرور مجازی NVMe

حل مشکل: تعویض بد Bash

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


ممکن است هنگام توسعه اسکریپت های Bash مشکل نحو جایگزینی بد را دریافت کرده باشید. پس از مرور در انجمن ها، ممکن است متوجه شوید که تنها نیستید. افراد دیگر با همین اشتباه روبرو می شوند. این یک خطای چاپی است که هنگام اجرای اسکریپت Shell رخ می دهد و ممکن است به دلایل مختلفی اتفاق بیفتد. استفاده نادرست از جایگزینی دستورالعمل و کاراکترهای اشتباه اضافه شده به برنامه دو دلیل عمده برای این امر است.

بیایید ببینیم چگونه می توانیم اسکریپت پوسته خود را باعث ایجاد این خطا کنیم و چگونه آن را برطرف کنیم. با جدید شروع کنید bash فایل با کوئری «touch» اوبونتو ایجاد شده و آن را در «GNU ویرایشگر نانو.

$ sub.sh را لمس کنید
نانو ساب.ش

حل مشکل: تعویض بد Bash

مثال 01

اولین دلیل برای خطای بد جایگزینی استفاده از نحو کد اشتباه است. بیایید نگاهی به این بیندازیم. شروع از اول bash کد، ما اضافه کرده ایم bash پشتیبانی در خط اول از bash اسکریپت، به عنوان مثال، “#!/bin/bash”. پس از این، یک متغیر ساده “V” را با دستور لیست اوبونتو به عنوان مقدار مقداردهی اولیه کردیم. این مقدار در داخل براکت های فرفری و با علامت “$” درج شده است تا آن را به عنوان یک فرمان پوسته در نظر بگیرید. پس از این، دستور echo اینجا است تا به سادگی مقدار متغیر “v” را نمایش دهد روی پوسته. کد ما کامل و آماده استفاده است.

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

ما نجات دادیم bash کد و برگشت به terminal پس از استفاده از Ctrl+S و Ctrl+X به ترتیب. ما این تازه ایجاد شده را اجرا کرده ایم bash فایل اسکریپت با “bash” دستورالعمل و “جایگزینی بد” را در اینجا دریافت کردم روی صفحه نمایش ما این خطا به دلیل استفاده از براکت های مجعد “{}” در اطراف دستورالعمل لیست در کد رخ داده است.

$ bash sub.sh

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

بیایید سعی کنیم کد خود را برای رفع این خطا به روز کنیم. بنابراین، براکت‌های فرفری را از خط دوم کد حذف کرده و با براکت‌های ساده «()» که در زیر ارائه شده است، جایگزین می‌کنیم. به طور کلی، کد ثابت می ماند زیرا مشکلی در کد وجود ندارد. اکنون این کد را ذخیره کنید.

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

پس از خروج از GNU ویرایشگر نانو، ما آن را اجرا خواهیم کرد bash فایل “sub.sh” کد به روز شده با استفاده از “bash” دستورالعملی که در زیر ارائه شده است. به نظر می رسد که خطای جایگزینی بد پس از به روز رسانی کد حذف شده است و دستورالعمل لیست درج شده در متغیر “v” با موفقیت اجرا شده است. دستور list تمام محتویات دایرکتوری خانه فعلی را نمایش می دهد، به عنوان مثال، فایل ها و پوشه ها، روی صفحه نمایش پوسته ما

$ bash sub.sh

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

مثال 02

یکی دیگر از دلایل بروز خطاهای تعویض بد در bash استفاده از فضاهای غیر ضروری هنگام اجرای برخی متغیرها است. بنابراین، ما اضافه کرده ایم bash یک متغیر “V” را با دستورالعمل لیست به عنوان مقداری که توسط براکت های ساده و یک علامت دلاری “$” نگهداری می شود، پشتیبانی و مقداردهی اولیه کرد. پس از این، ما از دستور “echo” برای نمایش مقدار متغیر “v” استفاده می کنیم. اما متغیر “V” را در عبارت “echo” به همراه “space” در پرانتز اضافه کرده‌ایم.

پیشنهاد می‌کنیم بخوانید:  دستور egrep لینوکس با مثال

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

پس از ذخیره این کد، این را اجرا کرده ایم bash فایل با “bash” پرس و جو در ما terminal، همانطور که در زیر ارائه شده است. را برمی گرداند bash تعویض در 3rd خط فیلمنامه

$ bash sub.sh

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

برای حذف خطا از کد خود، باید کد خود را به روز کنیم. بنابراین، ما فایل را دوباره باز کرده‌ایم و فضای اضافی درون براکت‌های فرفری عبارت «echo» را مانند زیر حذف کرده‌ایم.

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

حالا که کد به روز شد و فضای خالی حذف شد، باید این فایل را با کد اجرا کنیم bash دستورالعمل ارائه شده در زیر پس از اجرای فایل، خطای جایگزینی بد حذف شده و دستورالعمل لیست مشخص شده در متغیر “V” با موفقیت اجرا شده است. روی را terminal پس از اجرای دستور “echo” در bash اسکریپت لیستی از فایل ها و پوشه های دایرکتوری خانگی فعلی نمایش داده می شود روی صفحه پوسته ما در زیر.

$ bash sub.sh

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

مثال 03

این خطا همچنین ممکن است به دلیل استفاده از کاراکترهای ناخواسته مکرر در کد رخ دهد. بنابراین، ما یک کد به روز شده را برای دریافت این خطا امتحان کرده ایم روی پوسته. برای این کار، باید از کاراکتر «$» دو بار در عبارت «echo» استفاده کنیم تا متغیر «V» را برای اجرا مشخص کنیم که نحو اشتباهی برای انجام این کار است. این متغیر “v” حاوی دستورالعمل لیست ساده به عنوان مقدار آن است. از آنجایی که ما از علامت دوگانه «$» برای ورود و خروج از براکت‌های فرفری در عبارت «echo» استفاده کرده‌ایم، ما را به یک خطای جایگزینی بد سوق می‌دهد. روی اجرا.

پیشنهاد می‌کنیم بخوانید:  روش استفاده از حلقه for در دستور awk

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

پس از اجرای کد با bash دستورالعمل، ما با یک خطای تعویض بد در خط 3 مواجه شدیم bash اسکریپت روی صفحه نمایش پوسته ما

$ bash sub.sh

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

بیایید با به روز رسانی خط 3 یک کد، خطای بد تعویض را از اجرا حذف کنیم. ما علامت داخلی “$” را در داخل براکت های فرفری از عبارت “echo” حذف کرده ایم.

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

پس از حذف علامت $، دوباره کد را اجرا کردیم روی پوسته با “bash” فرمان خطا حذف شد و لیست فایل ها و پوشه ها نمایش داده شد.

$ bash sub.sh

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

مثال 04

بیایید آخرین اما نه کم‌ترین مثال خود را از این مقاله داشته باشیم. ما از دو متغیر x و y استفاده کرده‌ایم که محل دایرکتوری را به‌عنوان مقدارشان در بر می‌گیرد. در عبارت “echo” این کد، ما از هر دو متغیر برای چاپ و جداسازی با علامت “/” استفاده کرده‌ایم. هر متغیر حاوی یک علامت دلار به همراه خود است، در حالی که یک علامت دلار واحد نیز در خارج از براکت های فرفری استفاده می شود.

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

استفاده از براکت های فرفری و علامت دلار باعث خطای بد تعویض شد.

$ bash sub.sh

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

بنابراین، براکت های فرفری و علامت دلار خارجی را مانند تصویر زیر حذف کرده ایم.

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

این مقدار زمانی هر دو متغیر نمایش داده شده است.

$ bash sub.sh

حل مشکل: تعویض بد Bashحل مشکل: تعویض بد Bash

نتیجه

این همه در مورد تصویر ایجاد یک است bash به اشتباهاتی که باعث بروز خطای بد جایگزینی در حین اجرا می شود کد می نویسد. ما بایدها و نبایدها را برای جلوگیری از خطا از طریق اجرای متفاوت مورد بحث قرار داده ایم bash مثال ها.

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

زمان انتشار: 1402-12-30 00:00:04

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

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

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