Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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 script файлът е в 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