J'ai rencontré quelques problèmes lors de l'exécution de certains scripts d'installation dont ils se plaignaient bad interpreter.
J'ai donc fait un exemple trivial mais je ne peux pas comprendre quel est le problème, voir ci-dessous.
#!/usr/bin/env bash
echo "hello"
L'exécution du script ci-dessus entraîne l'erreur suivante
[root@ech-10-24-130-154 dc-user]# ./junk.sh
bash: ./junk.sh: /usr/bin/env: bad interpreter: No such file or directory
Le /usr/bin/envfichier existe, voir ci-dessous:
[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 je modifie le script pour utiliser le shebang normal, #!/bin/bashcela ne fonctionne pas. #!/bin/env bashfonctionne aussi bien.
Que manque-t-il à l'environnement pour permettre au shebang portable de fonctionner?
ls -lL /usr/bin/envrenvoie ls: cannot access /usr/bin/env: No such file or directorydonc je suppose que je dois modifier le lien symbolique? Puis-je le signaler /bin/env?
env --version est 8.4 et le système d'exploitation est Red Hat Enterprise Linux Server version 6.6.