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/envarchivo 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/bashno funciona. #!/bin/env bashfunciona igual de bien
¿Qué le falta al entorno para permitir que el shebang portátil funcione?
ls -lL /usr/bin/envvuelve ls: cannot access /usr/bin/env: No such file or directoryasí 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.