Tôi gặp phải một số vấn đề khi chạy một số tập lệnh cài đặt nơi chúng phàn nàn bad interpreter.
Vì vậy, tôi đã làm một ví dụ tầm thường nhưng tôi không thể tìm ra vấn đề là gì, xem bên dưới.
#!/usr/bin/env bash
echo "hello"
Thực thi đoạn script trên dẫn đến lỗi sau
[root@ech-10-24-130-154 dc-user]# ./junk.sh
bash: ./junk.sh: /usr/bin/env: bad interpreter: No such file or directory
Các /usr/bin/envtập tin tồn tại, xem dưới đây:
[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]#
Nếu tôi thay đổi tập lệnh để sử dụng shebang thông thường #!/bin/bashthì nó không hoạt động. #!/bin/env bashlàm việc tốt
Điều gì còn thiếu từ môi trường để cho phép shebang di động hoạt động?
ls -lL /usr/bin/envtrả về ls: cannot access /usr/bin/env: No such file or directoryvì vậy tôi đoán tôi cần phải thay đổi liên kết tượng trưng? Tôi có thể chỉ cho nó /bin/env?
env --version là 8.4 và HĐH là Red Hat Enterprise Linux Server phát hành 6.6.