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/env
fichier 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/bash
cela ne fonctionne pas. #!/bin/env bash
fonctionne aussi bien.
Que manque-t-il à l'environnement pour permettre au shebang portable de fonctionner?
ls -lL /usr/bin/env
renvoie ls: cannot access /usr/bin/env: No such file or directory
donc 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.