Я столкнулся с некоторыми проблемами при запуске некоторых сценариев установки, на которые они жаловались bad interpreter
.
Итак, я сделал тривиальный пример, но не могу понять, в чем проблема, см. Ниже.
#!/usr/bin/env bash
echo "hello"
Выполнение сценария выше приводит к следующей ошибке
[root@ech-10-24-130-154 dc-user]# ./junk.sh
bash: ./junk.sh: /usr/bin/env: bad interpreter: No such file or directory
/usr/bin/env
Файл существует, смотрите ниже:
[root@ech-10-24-130-154 dc-user]# ls -l /usr/bin/env
lrwxrwxrwx 1 root root 13 Jan 27 04:14 /usr/bin/env -> ../../bin/env
[root@ech-10-24-130-154 dc-user]# ls -l /bin/env
-rwxr-xr-x 1 root root 23832 Jul 16 2014 /bin/env
[root@ech-10-24-130-154 dc-user]#
Если я изменю сценарий на использование обычного шебанга, #!/bin/bash
это не проблема. #!/bin/env bash
работает так же.
Чего не хватает в окружающей среде, чтобы позволить портативному шебангу работать?
ls -lL /usr/bin/env
возвращается, ls: cannot access /usr/bin/env: No such file or directory
так что я думаю, мне нужно изменить символическую ссылку? Могу ли я указать на это /bin/env
?
env --version
это 8.4 и ОС Red Hat Enterprise Linux Server версии 6.6.