Не запускается программа bash

Иногда при запуске .sh файла, который представляет собой Bash скрипт, может возникнуть ошибка. К примеру, запускается скрипт в файле check-aur.sh:

./check-aur.sh
bash: ./check-aur.sh: Отказано в доступе

Подобную ошибку можно исправить, если перед запускаемым скриптом указать желаемый интерпретатор, то есть bash:

bash ./check-aur.sh

Почему возникает ошибка «bash: ./….sh: Отказано в доступе»

Вы могли заметить, что некоторые файлы можно запустить и без указания bash в начале команды. Для этого необходимо соблюдение двух условий:

  • в разрешения файла должно быть разрешение на выполнение
  • в самом файле вверху должен быть шебанг

Проверить, есть ли разрешения на исполнение файла можно командой ls:

ls -l /путь/до/файла.sh

Должно быть что-то вроде такого (должны быть x):

Как включить Bash в Windows 10


-rwxr-xr-x 1 root root 415 Apr 26 2018 /root/bin/vpn_route.sh

Чтобы установить права на выполнение файла выполните команду вида:

chmod +x /путь/до/файла.sh

Ещё одна возможная причина, в начале файла *.sh пропущен шебанг:

#!/bin/sh

Строка шебанга имеет следующий формат:

#!interpreter [optional-arg]

interpreter должен быть абсолютным путём к исполняемому файлу программы (если интерпретатором является скрипт, он тоже должен начинаться с шебанга). Необязательный optional-arg должен иметь формат единственного аргумента (по причинам переносимости он не должен содержать пробелы). Пробел после #! является опциональным.

Связанные статьи:

  • Как использовать echo вместе с sudo (97.4%)
  • sudo: cd: command not found (РЕШЕНО) (97.4%)
  • Решение проблемы с ошибкой fatal error: stdlib.h: Нет такого файла или каталога (52.7%)
  • Решение проблемы с ошибкой make: x86_64-w64-mingw32-gcc: Команда не найдена (52.7%)
  • Решение проблемы с ошибкой fatal error: ffi.h: Нет такого файла или каталога (52.7%)
  • Xfce загружается без Панели задач и кнопки Пуск (РЕШЕНО) (RANDOM — 2.7%)
Читайте также:
Лучшая программа для усиления сигнала сети для Андроид

Источник: zalinux.ru

Ошибка /bin/bash^M: bad interpreter: No such file or directory при запуске скриптов

Ошибка /bin/bashM: bad interpreter: No such file or directory при запуске скриптов

Как видно из текста ошибки, при запуске скрипта вместо стандартного шелла /bin/bash скрипт пытается запустить его из директории /bin/bash^M и ожидаемо выдает ошибку, потому что такого пути не существует. Все дело в том, что ^M — это символ возврата каретки (окончания строки), который обычно используется на Windows системах. По всей видимости, данный скрипт редактировался каким-либо текстовым редактором, в настройках которого был выставлен режим Windows (а не Linux) и из-за этого, при запуске скрипта получается такая ошибка.

Как запускать программы Linux в Windows при помощи Bash эмулятора

Как исправить ошибку (способ 1: очень быстрый)

Допустим, наш скрипт, при запуске которого мы получаем ошибку будет называться script.sh .
1) Делаем его резервную копию, чтобы иметь возможность восстановить работоспособность, если что-либо пойдет не так.
2) Запускаем следующую команду:

sed -i -e ‘s/r$//’ script.sh

Она должна заменить все символы переноса строки Windows на те, которые используются на Linux системах. Способ не совсем универсальный, поэтому иногда может не сработать.
3) После выполнения данной команды, пытаемся запустить на скрипт script.sh и проверить работоспособность. Если не помогло, то восстанавливаем оригинал из резервной копии и переходим ко второму способу.

Как исправить ошибку (способ 2: медленный, но очень надежный)

Если первый способ не помог, либо если вы часто сталкиваетесь с такой ошибкой, то можно воспользоваться специальной утилитой dos2unix , которая как раз подходит для таких случаев
1) Делаем резервную копию script.sh , чтобы восстановить его в случае проблем.
2) Устанавливаем утилиту dos2unix

sudo apt update sudo apt install dos2unix
3) Выполняем команду:
dos2unix script.sh dos2unix: converting file script.sh to Unix format.

Читайте также:
Что представляет собой объектно ориентированная программа с точки зрения теории ооп

4) После выполнения данной команды, пытаемся запустить на скрипт script.sh и проверить работоспособность.

Источник: pc.ru

Ubuntu 20.04.2 nautilus не запускается bash-скрипты, как решить?

P.S. суть в том чтобы пользователь запускал скрипт не заходя в терминал (для рядового сотрудника слишком сложно),
который будет запускать TeamviewerQuickSupport.

  • Вопрос задан более года назад
  • 259 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 1

karabanov

Системный администратор

Почему бы тебе просто не сделать ярлык (файл *.desktop ) для запуска teamviewer_qs

[Desktop Entry] Version=1.0 Encoding=UTF-8 Type=Application Categories=Network; Name=TeamViewer QuickSupport Comment=Remote control solution. Exec=/home/path/to/teamviewerqs/tv_bin/script/teamviewer Icon=/home/path/to/teamviewerqs/tv_bin/desktop/teamviewer_48.png

Более того, при первом запуске он автоматически создаётся, так что можешь просто скопировать его на видное место.

Источник: qna.habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru