bad interpreterฉันวิ่งเข้าไปในบางประเด็นที่เมื่อทำงานสคริปต์การติดตั้งบางอย่างที่พวกเขาบ่น
ดังนั้นฉันจึงทำตัวอย่างเล็กน้อย แต่ไม่สามารถเข้าใจได้ว่าปัญหาคืออะไรดูด้านล่าง
#!/usr/bin/env bash
echo "hello"
การเรียกใช้สคริปต์ข้างต้นส่งผลให้เกิดข้อผิดพลาดดังต่อไปนี้
[root@ech-10-24-130-154 dc-user]# ./junk.sh
bash: ./junk.sh: /usr/bin/env: bad interpreter: No such file or directory
/usr/bin/envไฟล์ที่มีอยู่ดูด้านล่าง:
[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]#
ถ้าฉันเปลี่ยนสคริปต์เพื่อใช้ shebang ปกติ#!/bin/bashมันก็ไม่มีปัญหา #!/bin/env bashทำงานได้เช่นกัน
สิ่งที่หายไปจากสภาพแวดล้อมที่อนุญาตให้ shebang แบบพกพาทำงานได้?
ls -lL /usr/bin/envส่งคืนls: cannot access /usr/bin/env: No such file or directoryดังนั้นฉันเดาว่าฉันต้องเปลี่ยนลิงค์สัญลักษณ์? ฉันสามารถชี้ไปที่/bin/env?
env --version คือ 8.4 และระบบปฏิบัติการคือ Red Hat Enterprise Linux Server ที่วางจำหน่าย 6.6