Encontrei alguns problemas ao executar alguns scripts de instalação nos quais eles se queixavam bad interpreter
.
Então fiz um exemplo trivial, mas não consigo descobrir qual é o problema, veja abaixo.
#!/usr/bin/env bash
echo "hello"
A execução do script acima resulta no seguinte erro
[root@ech-10-24-130-154 dc-user]# ./junk.sh
bash: ./junk.sh: /usr/bin/env: bad interpreter: No such file or directory
O /usr/bin/env
arquivo existe, veja abaixo:
[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]#
Se eu alterar o script para usar o shebang normal, #!/bin/bash
ele não funcionará. #!/bin/env bash
funciona também.
O que está faltando no ambiente para permitir que o shebang portátil funcione?
ls -lL /usr/bin/env
retorna, ls: cannot access /usr/bin/env: No such file or directory
então acho que preciso alterar o link simbólico? Posso apontar para isso /bin/env
?
env --version
é 8.4 e o sistema operacional é o Red Hat Enterprise Linux Server versão 6.6.