- bad interpreter: No such file or directory
- 2 ответа 2
- Bash script and /bin/bash^M: bad interpreter: No such file or directory [duplicate]
- 11 Answers 11
- / usr / bin / env: ‘python’: нет такого файла или каталога
- Проблемы после установки Python на Linux?
- Русские Блоги
- Linux запускает сценарий оболочки. Нет такого решения для ошибки файла или каталога.
- Решение
- 1. Конвертируйте под Windows:
- 2. Метод
- 3. Преобразование разрешений в linux
- Интеллектуальная рекомендация
- Пошаговая загрузка файла Spring MVC-09 (на основе файла загрузки клиента Servlet3.0 + Html5)
- Создайте многоканальное окно в приложениях Win32
- Путь к рефакторингу IOS-APP (3) Введение в модульное тестирование
- Tree——No.617 Merge Two Binary Trees
bad interpreter: No such file or directory
Суть проблемы: если ша-бэнг содержит только только имя файла интерпретатора, то bash его не находит и ругается
Вот Linux на NAS:
А вот Cygwin 2.5.1 (в 1.7.33 не наблюдал):
Права на исполнение есть, никаких CR (^M) нет. В Cygwin 2.5.1 проявляется примерно в 50% случаев, т.е. может запуститься, а может и нет.
Проблема, конечно, не великая, но ИМХО так быть не должно.
2 ответа 2
В вашем случае ошибка возникает из-за того, что строка-shebang #!perl эквивалентна #!./perl . Ваш скрипт пытается выполниться интерпретатором, находящимся в текущей директории, и, соответственно, говорит bad interpreter: No such file or directory , потому что в текущей директории у вас нет файла perl .
В виде эксперимента: если вы разместите perl -интерпретатор рядом со скриптом (что довольно странно), то этой ошибки не будет.
. #!interpreter is equivalent to #!./interpreter , however, it’s not of any practical use.
согласно man execve относительно указания интерпретатора в shebang-е сказано следующее (выделено мною):
The interpreter must be a valid pathname for an executable which is not itself a script.
стоит заметить, что «обработкой» shebang-а занимается не оболочка, а загрузчик программ операционной системы.
и ещё: путь может быть как абсолютный (от корня — / ), так и относительный (относительно текущего каталога).
если указано просто имя, то интерпретатор разыскивается в текущем каталоге. пример:
но ошибочное поведение, возможно, встречается в описанном вами: если «иногда может запуститься».
Источник
Bash script and /bin/bash^M: bad interpreter: No such file or directory [duplicate]
The community reviewed whether to reopen this question 13 days ago and left it closed:
Duplicate This question has been answered, is not unique, and doesn’t differentiate itself from another question.
I’m learning through this tutorial to learn bash scripts to automate a few tasks for me. I’m connecting to a server using putty.
The script, located in . /Documents/LOG , is:
And I executed the following for read/write/execute permissions
Then, when I enter ./my_script , I’m getting the error given in the title.
Some similar questions wanted to see these, so I think they might help:
I tried adding current directory to PATH , but that doesn’t work..
11 Answers 11
I have seen this issue when creating scripts in Windows env and then porting over to run on a Unix environment.
Try running dos2unix on the script:
Or just rewrite the script in your Unix env using vi and test.
Unix uses different line endings so can’t read the file you created on Windows. Hence it is seeing ^M as an illegal character.
If you want to write a file on Windows and then port over, make sure your editor is set to create files in UNIX format.
In notepad++ in the bottom right of the screen, it tells you the document format. By default, it will say Dos\Windows . To change it go to
- settings->preferences
- new document / default directory tab
- select the format as unix and close
- create a new document
Источник
/ usr / bin / env: ‘python’: нет такого файла или каталога
Когда я пытаюсь сделать это:
Это выход после ./configure
Как я могу решить это? Я новичок в Ubuntu.
Вы, кажется, python3 установили, но он не вызывается, python и в любом случае скрипт, который вы хотите запустить ( configure ), требует Python 2. Итак:
Запустите это снова
Если это снова не сработает, вызовите его явно с python2:
У меня была такая же проблема после установки Ubuntu 18.04 и попытки запустить некоторые скрипты на Python.
но я все еще получил ту же ошибку. Я решил это путем:
У меня была та же проблема, она была решена путем связывания python с python2.7 с помощью следующих команд
Для Ubuntu 20.04 вы можете использовать следующий пакет для команды python. И это питон 3.
sudo apt-get install python-is-python3
Просто для справки . У меня была похожая проблема — запуск сценария Python из контейнера Docker завершился неудачно с «Нет такого файла или каталога», мое решение состояло в том, чтобы принудительно завершить строки в стиле Unix при проверке кода и в IDE ( так как он был привязан к хосту Windows к контейнеру).
Проблемный сценарий :
Возможное решение № 1
Если Python 3 не установлен, установите его: apt-get install python3
Возможное решение № 2
Если Python 3 установлен, выполните следующие команды: whereis python3
Затем мы создаем символическую ссылку на него: sudo ln -s /usr/bin/python3 /usr/bin/python
Источник
Проблемы после установки Python на Linux?
$ python —version результат: Python 2.7.12
$ python3 —version результат: Python 3.5.2
which python результат: /usr/bin/python
which python3 результат: /usr/bin/python3
$ sudo apt update
$ sudo apt install python3.6
$ ls /usr/bin/python*
результат:
$ python3.6 —version результат: Python 3.6.3
затем.
думаю здесь сделал ошибку, эту команду не нужно было вводить, результат:
$ update-alternatives —config python
результат: Есть только одна альтернатива в группе ссылок python (предоставляющая /usr/bin/python): /usr/bin/python2.7
Настраивать нечего.
$ update-alternatives —config python3
результат:
Есть 2 варианта для альтернативы python3 (предоставляет /usr/bin/python3).
Выбор Путь Приор Состояние
————————————————————
* 0 /usr/bin/python3.6 3 автоматический режим
1 /usr/bin/python3.5 2 ручной режим
2 /usr/bin/python3.6 3 ручной режим
Press to keep the current choice[*], or type selection number: 0
После всех этих шаманств, начались чудеса 🙂
$ python —version
получаю: bash: /usr/lib/command-not-found: /usr/bin/python3: плохой интерпретатор: Нет такого файла или каталога
$ python2 —version возвращает: Python 2.7.12
$ python3 —version возвращает: bash: /usr/lib/command-not-found: /usr/bin/python3: плохой интерпретатор: Нет такого файла или каталога
$ python3.5 —version возвращает: Python 3.5.2
$ python3.6 —version возвращает: Python 3.6.3
перестал запускаться gnome-terminal назначенный на Alt+T, возвращает: не удалось выполнить процесс-потомок «/usr/bin/gnome-terminal» (нет такого файла или каталога), но при этом запускается gnome-terminal.real
при запуске графического окна «Обновление приложений», выдает ошибку: не удалось выполнить процесс-потомок «/usr/bin/update-manager» (нет такого файла или каталога), но при этом sudo apt update и sudo apt upgrade работают,
при запуске графического окна «Программы и обновления», выдает ошибку: не удалось выполнить процесс-потомок «/usr/bin/software-properties-gtk» (нет такого файла или каталога).
lsb_release
возвращает: bash: /usr/bin/lsb_release: /usr/bin/python3: плохой интерпретатор: Нет такого файла или каталога
lsb_release -а , тоже самое
попробовал все сбросить
sudo update-alternatives —remove-all python
sudo update-alternatives —remove-all python2
sudo update-alternatives —remove-all python3
результат: ошибки не исправились, все также. если правильно понимаю, я затронул системный python 2.7.12 и его зависимости. Помогите исправить, подскажите где я ошибся и как правильно нужно было делать.
Спасибо.
Источник
Русские Блоги
Linux запускает сценарий оболочки. Нет такого решения для ошибки файла или каталога.
Linux запускает файл .sh и выводит запрос Нет проблем с файлом или каталогом
Под оконной платформой напишите файл сценария оболочки, перейдите на платформу Linux, получите разрешения на выполнение, выполните файл sh,
, но отображается сообщение Нет такого файла или каталога. После ls действительно есть файл, что случилось?
Это проблема совместимости формата файла?
Решение
Проанализируйте причину, возможно, из-за того, что при миграции моей платформы возникают проблемы с разрешениями, мы выполним преобразование разрешений, например: windows-> linux
1. Конвертируйте под Windows:
Используйте некоторые редакторы, такие как UltraEdit или EditPlus, чтобы сначала преобразовать код сценария, а затем поместить его в Linux для выполнения. Метод конвертации следующий (UltraEdit): Файл–> Конверсии–> DOS-> UNIX.
2. Метод
Откройте файл sh с помощью vim и введите:
Нажмите Enter, отобразите fileformat = dos, сбросьте формат файла и введите:
Сохранить и выйти:
Выполните заново, это работает
3. Преобразование разрешений в linux
Во-первых, убедитесь, что у файла есть разрешения на исполнение.
Затем измените формат файла
Эти три метода могут легко и быстро решить проблему отсутствия такого файла или каталога, когда Linux выполняет файл .sh.
Этот вопрос еще раз напомнил мне, что программа должна быть написана как можно больше под Linux, и при миграции может возникнуть меньше проблем.
Интеллектуальная рекомендация
Пошаговая загрузка файла Spring MVC-09 (на основе файла загрузки клиента Servlet3.0 + Html5)
пример тестовое задание Исходный код Несмотря на загрузку файлов в Servlet3.0 +, мы можем очень легко программировать на стороне сервера, но пользовательский интерфейс не очень дружелюбен. Одна HTML-ф.
Создайте многоканальное окно в приложениях Win32
Создайте многоканальное окно в приложениях Win32, создайте несколько оконных объектов одного и того же класса Windows, а окна объектов разных классов окон. .
Путь к рефакторингу IOS-APP (3) Введение в модульное тестирование
IOS-APP реконструкция дороги (1) структура сетевых запросов IOS-APP реконструкция дороги (два) Модельный дизайн При рефакторинге нам нужна форма, позволяющая вносить смелые изменения, обеспечивая при .
Tree——No.617 Merge Two Binary Trees
Problem: Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge them into a new bin.
Источник