/bin/env : плохой интерпретатор

/bin/env : плохой интерпретатор

Я использую 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.shto #! /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

Связанный контент