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