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/env
tậ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/bash
thì nó không hoạt động. #!/bin/env bash
là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/env
trả về ls: cannot access /usr/bin/env: No such file or directory
vì 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.