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/env
berkas 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/bash
itu berfungsi tidak masalah. #!/bin/env bash
berfungsi juga.
Apa yang hilang dari lingkungan untuk memungkinkan shebang portabel berfungsi?
ls -lL /usr/bin/env
kembali ls: cannot access /usr/bin/env: No such file or directory
jadi 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.