sudo: не мог выполнить./script.sh: никакой такой файл или каталог

Единственная вещь, о которой я могу думать, прямо сорвана из страницы руководства, раздела PROGRESS METER:

   If you prefer a progress "bar" instead of the regular meter, -# is your
   friend.

Пример:

delicious:~ ajanssen$ curl -# http://www.heise.de > bla
######################################################################## 100,0%

По сравнению с:

delicious:~ ajanssen$ curl http://www.heise.de > bla
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   98k    0   98k    0     0   164k      0 --:--:-- --:--:-- --:--:--  169k
27
16.07.2014, 23:29
2 ответа

Обычно это происходит, когда строка shebang ( #! ) в вашем скрипте не работает.

Шебанг - это то, что сообщает ядру, что файл должен быть выполнен с использованием интерпретатора. При запуске без sudo сообщение становится более значимым. Но с sudo вы получите то же сообщение.

Например:

$ cat test.sh
#!/bin/foo
echo bar

$ ./test.sh
bash: ./test.sh: /bin/foo: bad interpreter: No such file or directory

$ bash test.sh
bar

$ sudo ./test.sh
sudo: unable to execute ./test.sh: No such file or directory

$ sudo bash ./test.sh
bar

Сообщение плохой интерпретатор ясно указывает на то, что это шебанг неисправен.

28
27.01.2020, 19:39

У меня возникла именно эта проблема, она оказалась проблемой кодировки текстового файла. Чтобы исправить это при запуске Xubuntu 14.04.3 LTS, я установил dos2unix и преобразовал кодировку скрипта, а затем снова запустил скрипт с помощью sudo, и он работал нормально. Вы можете найти пример ниже:

sudo apt-get install dos2unix -y
dos2unix test.sh
sudo chmod u+x test.sh && sudo ./test.sh
11
27.01.2020, 19:39

Теги

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