Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 12633|Відповідь: 0

[linux] /bin/bash^M: bad interpreter: No such file or directory

[Копіювати посилання]
Опубліковано 13.06.2020 22:40:35 | | | |
Під час виконання shell-скрипту повертається така помилка:

-bash: ./log_job.sh: /bin/bash^M: поганий інтерпретатор: Такого файлу чи каталогу немає
Причини помилок:

.sh скрипт написаний під системою Windows, тому можуть бути невидимі символи; з наведеного вище запиту помилки дуже ймовірно, що файл скрипту у форматі DOS, тобто кінець кожного рядка ідентифікується за \r\n, а його ASCII-код — 0x0D, 0x0A відповідно.

Помилка, яка відображається під час виконання shell-скрипту, здебільшого пов'язана з тим, що файл shell-скрипту знаходиться у форматі DOS, тобто кінець кожного рядка ідентифікується за \r\n, а кінець UNIX-файлу — за \n.

Особлива примітка: ^M — це не ^ і літера M, які утворюється клавішою shift + 6, це символ, його ASCII — 0x0D, спосіб його генерації — спочатку натиснути CTRL+V, а потім enter (або CTRL+M)


рішення

Існує кілька способів перевірити, чи файл скрипту у форматі DOS або UNIX.

(1) Перевірте формат скрипту: cat -A ім'я файлу За результатами відображення можна визначити, що рядок файлу, що закінчується у форматі dos, дорівнює ^M$, а рядок файлу, що закінчується у форматі unix, — $.



(2) Змінити формат скрипту: vi ім'я файлу, щоб відкрити файл і виконати:set ff=unixВстановіть файл у Unix і запустіть:wq, збережено у форматі UNIX.

  (3) Перевірте формат скрипту: cat -A ім'я файлу За результатом відображення можна визначити, що рядок файлу, що закінчується у форматі dos, дорівнює ^M$, а рядок файлу, що закінчується у форматі unix, — $.







Попередній:SSIS Tutorial 1 Вступ до сервісів інтеграції SQL Server
Наступний:Розділення та видалення журналів Nginx
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com