Me encontré con algunos problemas al ejecutar algunos scripts de instalación donde se quejaron bad interpreter
.
Así que hice un ejemplo trivial pero no puedo entender cuál es el problema, ver más abajo.
#!/usr/bin/env bash
echo "hello"
La ejecución de la secuencia de comandos anterior da como resultado el siguiente error
[root@ech-10-24-130-154 dc-user]# ./junk.sh
bash: ./junk.sh: /usr/bin/env: bad interpreter: No such file or directory
El /usr/bin/env
archivo existe, ver abajo:
[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]#
Si modifico el script para usar el shebang normal, #!/bin/bash
no funciona. #!/bin/env bash
funciona igual de bien
¿Qué le falta al entorno para permitir que el shebang portátil funcione?
ls -lL /usr/bin/env
vuelve ls: cannot access /usr/bin/env: No such file or directory
así que supongo que necesito alterar el enlace simbólico? ¿Puedo señalarlo /bin/env
?
env --version
es 8.4 y el sistema operativo es Red Hat Enterprise Linux Server versión 6.6.