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

سرور مجازی NVMe

حل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود ندارد

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


هنگام کارکردن روی پلتفرم های مختلف سیستم عامل، ما با مجموعه ای از خطاها مواجه شدیم، به عنوان مثال، انجام برخی از کدنویسی یا نصب. وقتی ما کار می کنیم bash، ممکن است با صدها مورد مواجه شویم bash خطاهای مرتبط می توانید باور کنید که یک مشکل مجوز وجود دارد و سعی کنید دستورالعمل chmod 777 را اجرا کنید تا bash فایل اسکریپت تمام حقوق را دارد، اما مشکل را حل نمی کند. با بازگشت کالسکه “M” آغاز می شود. نماد تغذیه خط در لینوکس برای نشان دادن پایان خط استفاده می شود. در ضمن از ترکیب دو کاراکتری CR LF در ویندوز استفاده می شود. سند شما دارای انتهای خط ویندوز است که باعث گیج شدن لینوکس می شود. بیایید راه حل های آن را ببینیم.

$ /صندوقچه/bash^M: مترجم بد: چنین نیست فایل یا دایرکتوری

حل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود ندارد

در این آموزش روش رفع مشکلی که در حین اجرا ایجاد می شود را بررسی خواهیم کرد bash فایل or.sh روی یک محیط لینوکس مفسر ضعیف نام دیگر این خطا است. ممکن است فکر کنید که این یک محدودیت مجوز است و سعی کنید از دستور chmod +x استفاده کنید تا تمام امتیازات مورد نیاز را به فایل اسکریپت پوسته بدهید، اما این مشکل را حل نمی‌کند. اسکریپت مشخص می کند که با استفاده از “/bin/ اجرا می شود.bash^M” پوسته. چنین فایلی وجود ندارد. در عوض، “/bin/bash” استفاده می شود. کاراکتر “^M” مخفف carriage return است.

کاراکتر تغذیه خط اغلب در لینوکس برای نشان دادن پایان یک خط استفاده می شود، در حالی که دنباله دو کاراکتری CR/LF اغلب در سیستم عامل های ویندوز مانند استفاده می شود. فایل حاوی نشانگرهای انتهای خط ویندوز است که باعث گیج شدن لینوکس می شود. در یک bash فایل اسکریپت، چگونه می توانم کاراکترهای رمزگذاری CR یا LF را ببینم؟ همچنین می توانید نویسه های انتهای خط را به صورت LFCR یا LFCR با View → Show Symbol → Show End of Line مشاهده کنید. نمونه ای از یک فایل با کاراکترهای CR یا LF در زیر نشان داده شده است:

پیشنهاد می‌کنیم بخوانید:  تفاوت بین منبع یابی و اجرای اسکریپت شل چیست؟

حل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود نداردحل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود ندارد

نمایشگرهای بالا و پایین در ویرایشگر اصلی دفترچه یادداشت موجود نیستند. در عوض، باید Notepad++، نسخه پیشرفته notepad را نصب کنید. برای رفع خطا در سیستم عامل ویندوز، آن را باز کنید bash فایل اسکریپت را در ویرایشگر Notepad++ و سپس از طریق منوی تنظیمات مانند زیر به تب تنظیمات بروید. پس از انتخاب Unix/OSX به عنوان فرمت، پنجره را ببندید. سپس فایل را ذخیره کرده و ببندید.

تنظیمات برگزیده ← سند جدید/ برگه فهرست پیش‌فرض ← تنظیمات ← تنظیمات ← سند جدید/ برگه فهرست پیش‌فرض ← انتخاب فرمت سند جدید →

حل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود نداردحل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود ندارد

با استفاده از دستور ویرایشگر جریان

در یونیکس، دستور SED برای یک ویرایشگر خط به خط حساب می‌کند و می‌تواند طیف گسترده‌ای از رویه‌های فایل مانند اسکن یا جستجو، یافتن و جایگزینی، درج و حذف را انجام دهد. دستور SED بیشتر در سیستم عامل های یونیکس و لینوکس مانند برای جایگزینی یا یافتن و جایگزینی استفاده می شود. کاراکترهای CR را که قرار نیست وجود داشته باشند حذف کنید. برای انجام این کار می توانید از دستور زیر در تصویر (sed) استفاده کنید:

حل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود نداردحل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود ندارد

با استفاده از Dos2UNIX Utility

Dos2Unix برنامه ای است که DOS را به یونیکس تبدیل می کند. برای حل اسکریپت پوسته برای سیستم‌عامل‌هایی مانند یونیکس لینوکس، ابزار dos2unix را نصب کنید و سپس دستور dos2unix را اجرا کنید:

$ dos2unix FILENAME.sh

حل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود نداردحل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود ندارد

اگر با خطای دستور not found مواجه شدید، ابتدا ابزار dos2unix را با اجرای دستور زیر از پوسته خط فرمان لینوکس نصب کنید:

$ سودو apt-get نصب کنید dos2unix

حل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود نداردحل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود ندارد

برای تبدیل فایل به فرمت DOS می توانید از دستور unix2dos استفاده کنید.

حل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود نداردحل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود ندارد

در یک bash فایل اسکریپت، چگونه می توانم کاراکترهای CR LF را مشاهده کنم؟ فایل تلاش، فایل -k، و در نهایت دستور dos2unix -ih مانند صفحه زیر: فایل تلاش، فایل -k، و در نهایت دستور dos2unix -ih مانند صفحه زیر. برای خط لینوکس/یونیکس “CR”، به سادگی متن را چاپ می کند.

حل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود نداردحل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود ندارد

ممکن است آن را نصب کنید روی سیستم عامل macOS با استفاده از Homebrew به شرح زیر است:

$ دم کردن نصب dos2unix

سپس دستور زیر را برای تبدیل فایل با فرمت dos به فرمت یونیکس اجرا کنید:

$ dos2unix FILENAME.sh

هدف از دستور dos2unix چیست

DOS2UNIX ابزاری است که انتهای خطوط DOS CR (بازگشت حمل) +LF (فید خط) را به کدگذاری خط یونیکس در فایل های متنی LF (فید خط) ترجمه می کند. همچنین می تواند بین کاراکترهای UTF-16 و UTF-8 تبدیل کند. با استفاده از دستور unix2dos می توانید از یونیکس به داس ترجمه کنید. انتظار می رود، این مشکل شما را حل کند.

پیشنهاد می‌کنیم بخوانید:  برای تکرار از طریق یک آرایه، حلقه «For» را بشکنید

با استفاده از ویرایشگر Vim

اگر DOS2UNIX Utility را نصب نکرده اید روی سیستم عامل LINUX خود، ممکن است از ویرایشگر VIM برای تبدیل فرمت اسکریپت پوسته خود به یونیکس استفاده کنید. برای باز کردن فایل در ویرایشگر VIM از دستورالعمل بعدی استفاده کنید:

vi FILENAME.sh

یا

vim FILENAME.sh

حل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود نداردحل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود ندارد

اگر در پوشه یا پوشه فعلی که در آن هستید نیستید bash فایل اسکریپت قرار دارد، مسیر کامل دایرکتوری را تایپ کنید، همانطور که من انجام دادم. اما اگر در همان دایرکتوری یا پوشه هستید، می‌توانید دستور را مستقیماً مطابق با بالا اجرا کنید. VIM یک شکل پیشرونده از ویرایشگر VI است. هر دو دستور VI و VIM کار یکسانی را انجام می دهند. برای تغییر فرمت فایل به سیستم عامل یونیکس دستور زیر را اجرا کنید:

$ :تنظیم ff=یونیکس

سپس با استفاده از دستورات زیر تمامی تغییرات ذخیره شده و فایل را در ویرایشگر ببندید و فایل را بنویسید و ببندید. حالا کار شما تمام شده است. شما می توانید قالب اسکریپت پوسته خود را از طریق هر یک از روش هایی که قبلا توضیح داده شد به یونیکس تبدیل کنید. امیدواریم اطلاعات بالا به حل مشکل شما کمک کرده باشد.

$ :wq!

حل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود نداردحل مشکل: Bin/Bash^M: مترجم بد: چنین فایل یا دایرکتوری وجود ندارد

نتیجه

همه اینها در مورد استفاده از روش های ساده برای حل مشکل “bin/bash^M: مفسر بد: چنین فایل یا دایرکتوری وجود ندارد. تمام مثال های استفاده شده در اینجا ساده و قابل اجرا هستند. امیدواریم مورد پسند شما واقع شود و از آن بیشتر بیاموزید.

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

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

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

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

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