bin / bash: плохой интерпретатор: нет такого файла или каталога

Я только что перешел с Windows на Linux (Ubuntu 18.04) ... и следовал учебнику для изучения сценариев bash ...

Я написал простой сценарий оболочки

#!bin/bash 

echo "Hello World" 

, но когда я попытался запустить его, используя

$ ./test1.sh

, он выдает ошибку

bash: ./test1.sh: bin/bash: bad interpreter: No such file or directory

Когда я я запускаю его, используя

$ bash test1.sh

, он работает нормально

Я попытался найти его и нашел много ответов, но все покрывает ошибки из-за некоторой разницы между windows newline ^M и ubuntu newline ... Я попытался открыть его в VIM в двоичном режиме (не знаю, что это такое), но у него не было тега ^M после bin / bash.

Пожалуйста, подскажите, что я делаю не так.

2
задан 16 July 2019 в 09:50

3 ответа

Вы пропускаете ведущую наклонную черту, делающую хижину полный путь:

#!/bin/bash
# ↑ here

В Вашем случае оболочка, кажется, ищет ./bin/bash.

Хижина (и также исполняемое разрешение) только принята во внимание, если Вы запускаете скрипт как программу:

$ ./test1.sh

Проигнорировано, выполняете ли Вы непосредственно интерпретатор и предоставляете Ваш сценарий как аргумент:

$ bash test1.sh

См. также: https://askubuntu.com/a/850387/250300

4
ответ дан 2 December 2019 в 02:11

Извините за возрождение старой темы, но у меня была та же проблема, и я смог ее исправить, не уверен, что именно помогло, но сделал все, что перечислено ниже. Прежде всего установите Gedit с помощью команды:

sudo apt-get install gedit

Затем убедитесь, что вы сохранили скрипт с окончанием строки Unix/Linux. После этого введите терминал, находясь в нужной папке:

chmod +x filename

Последнее — заменить в самом скрипте

#!bin/bash 

на

#!/bin/bash 
0
ответ дан 10 March 2020 в 14:11

Хотя это старый вопрос, поскольку нет объяснения проблемы ^M, возможно, это полезно:

  • ^M возникает из-за разницы между возвратом "Windows" и Linux. возвращение.
  • Самое простое решение — использовать редактор для преобразования всего возврата в вашем скрипте из CRLF (Win) в LF (Linux), например. Код ВС.
1
ответ дан 5 January 2021 в 07:32

Другие вопросы по тегам:

Похожие вопросы: