Saya mengalami beberapa masalah ketika menjalankan beberapa skrip instalasi di mana mereka mengeluh bad interpreter.
Jadi saya membuat contoh sepele tetapi saya tidak bisa mencari tahu apa masalahnya, lihat di bawah.
#!/usr/bin/env bash
echo "hello"
Menjalankan skrip di atas menghasilkan kesalahan berikut
[root@ech-10-24-130-154 dc-user]# ./junk.sh
bash: ./junk.sh: /usr/bin/env: bad interpreter: No such file or directory
The /usr/bin/envberkas ada, lihat di bawah:
[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]#
Jika saya mengubah script untuk menggunakan shebang biasa #!/bin/bashitu berfungsi tidak masalah. #!/bin/env bashberfungsi juga.
Apa yang hilang dari lingkungan untuk memungkinkan shebang portabel berfungsi?
ls -lL /usr/bin/envkembali ls: cannot access /usr/bin/env: No such file or directoryjadi saya kira saya perlu mengubah tautan simbolik? Bisakah saya menunjukkannya /bin/env?
env --version adalah 8.4 dan OS adalah Red Hat Enterprise Linux Server rilis 6.6.