از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش رفع خطای ترمینال Bash: «Bash: خطای نحوی نزدیک به توکن غیرمنتظره «Newline»
سرفصلهای مطلب
هنگام کار با اسکریپت Bash، می توانید با خطای غیرمنتظره “خط جدید” روبرو شوید که بر اجرای اسکریپت شما تأثیر می گذارد. درک این خطا اولین قدم برای حل آن است. این پست همه چیز را در مورد این خطا مورد بحث قرار می دهد. ما متوجه خواهیم شد که چه چیزی باعث آن می شود و چگونه باید آن را حل کنید تا با آن مواجه نشوید. شروع کنیم!
Bash چیست: خطای نحوی نزدیک به توکن غیرمنتظره “Newline”
هنگام اجرای یک اسکریپت Bash، ممکن است به دلایل مختلف با خطای غیرمنتظره “خط جدید” نشانه مواجه شوید. این خطا زمانی رخ می دهد که Bash کاراکترهای غیرمنتظره را در اسکریپت یا ورودی شما شناسایی کند.
اگر با این خطا مواجه هستید، یک خطای نحوی در اسکریپت شما باعث آن شده است. ما موارد مختلفی را ارائه می دهیم که در آن خطا ممکن است رخ دهد و روش حل آن را برای رفع خطا می بینیم. به نمونه های زیر دقت کنید.
مثال 1: براکت های زاویه ای نقل قول نشده
هنگام نوشتن یک اسکریپت Bash، هر براکت زاویه ای را که در کد خود استفاده می کنید، نقل قول کنید. فقط در این صورت Bash آن را به عنوان یک براکت زاویه می خواند. در غیر این صورت، خطای غیرمنتظره “خط جدید” توکن را ایجاد می کند.
در تصویر زیر سعی کردیم یک اسکریپت Bash را اجرا کنیم روی را terminal و خطای نحوی را به صورت زیر دریافت کرد:
اولین کاری که باید هنگام مواجه شدن با چنین خطایی انجام دهید این است که اسکریپت خود را با استفاده از یک ویرایشگر متن باز کنید. برای این مورد از ویرایشگر نانو استفاده می کنیم.
وقتی اسکریپت را باز می کنید، به دنبال هر کدی باشید که حاوی براکت های زاویه ای نقل قول نشده باشد. علت اصلی خطا همین است. در تصویر قبلی می بینیم که متغیر str ما دارای یک رشته نقل قول نشده است و این دلیل خطای نحوی است. شما می توانید این خطا را با نقل قولی که در زیر نشان داده شده است برطرف کنید:
اگر ما آن را همانطور که توسط Bash انتظار می رود نقل کنیم و همان اسکریپت را دوباره اجرا کنیم، اسکریپت را با موفقیت اجرا خواهیم کرد.
مثال 2: استفاده از براکت های زاویه در پارامترهای خط فرمان Bash
هنگامی که یک اسکریپت Bash دارید که ورودی را از کاربر می گیرد تا به عنوان آرگومان در یک پارامتر در اسکریپت استفاده کند، اضافه کردن براکت های زاویه بدون نقل قول، خطای غیرمنتظره “خط جدید” را ایجاد می کند.
اگر میخواهید آرگومانهایی را وارد کنید که حاوی کروشههای زاویه باشد، مطمئن شوید که آن را نقلقول کردهاید. اگر اسکریپت Bash را باز کنیم، میتوانیم سینتکس را بررسی کنیم تا منشا خطا را شناسایی کنیم.
در کد اسکریپت قبلی، می بینیم که آرگومان ها را از ورودی کاربر می پذیریم. بنابراین، هنگامی که اسکریپت را اجرا می کنیم، باید آرگومان ها را همانطور که انجام دادیم اضافه کنیم، که باعث می شود خطای نحو ظاهر شود. در ورودی کاربر، متوجه میشویم که در آرگومان دوم یک براکت زاویه وارد کردهایم که باعث میشود Bash خطای نحوی را افزایش دهد.
با این حال، اگر براکت زاویه را نقل قول کنیم و دوباره وارد کنیم، اسکریپت Bash را با موفقیت بدون خطا اجرا می کنیم.
در خروجی، پس از نقل قول زاویه، موفق به چاپ آنها شدیم روی را terminal طبق فیلمنامه
بنابراین، اگر با خطای «Bash: نحوی نزدیک به نشانه غیرمنتظره «خط جدید» مواجه شدید، با بررسی کد موجود در اسکریپت خود شروع کنید تا مشخص کنید خطا کجاست. علاوه بر این، بررسی کنید که آیا پارامترهایی در کد خود دارید و آیا خطا به دلیل خطا در آرگومان وارد شده رخ داده است. روی شما terminal.
نتیجه
هنگام کار با اسکریپت Bash به دو دلیل اصلی میتوانید با «خطای دستوری Bash: نشانه غیرمنتظره «خط جدید» مواجه شوید: ممکن است کروشهها را نقل قول نکرده باشید. با این حال، ممکن است در استدلال خود خطایی داشته باشید. در این پست این دو علت و روش رفع خطا توضیح داده شده است.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-28 18:08:03