
Я использую Linux Mint 19.03.
У меня есть файл сценария оболочки установки, setup.sh
. Когда я запускаю./setup.sh
muyustan@mint:~/Downloads/quartusExtracted$ ./setup.sh
bash: ./setup.sh: /bin/env: bad interpreter: No such file or directory
Хитрость в setup.sh
:
#!/bin/env bash
Мое понимание этих вещей очень узкое, поскольку я новичок в мире Linux.
Я знал, что использование /bin/env bash
вместо указания точного bash
пути было чем-то вроде "поиск в переменных окружения и попытка найти bash
". Когда я смотрю в /bin
каталог для env
, я вижу, что такого файла нет:
muyustan@mint:/usr/bin$ ll /bin | grep "env"
lrwxrwxrwx 1 root root 6 Mar 21 14:35 open -> openvt*
-rwxr-xr-x 1 root root 18872 Jan 22 2018 openvt*
Также,
muyustan@mint:~/Downloads/quartusExtracted$ which bash
/bin/bash
Итак, я предполагаю, что изменение шебанга в setup.sh
to #! /bin/bash
решит проблему (я не пробовал), однако, это не кажется очень интуитивным, потому что если так, то я спрашиваю себя,
«Разработчики этого приложения (Quartus 13.1) допустили ошибку?», что наводит меня на мысль, что с моей системой что-то не так.
Итак, вопрос в том, почему сложилась такая ситуация?
Спасибо.
решение1
С вашей системой все в порядке, вы просто используете неправильный путь к env
. По крайней мере, в системах Linux env
двоичный файл обычно находится в /usr/bin
, а не /bin
:
$ type env
env is /usr/bin/env
Итак, ваш скрипт говорит вашей системе использовать /bin/env
, которого не существует, и поэтому вы получаете эту ошибку. Просто измените на правильный shebang, и все должно быть в порядке:
#!/usr/bin/env bash