Я зіткнувся з деякими проблемами, коли запускав деякі сценарії встановлення, де вони скаржилися 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.