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