2
เหตุใดฉันจึงไม่สามารถใช้ตัวแปรเป็นคำนำหน้าให้กับคำสั่งเพื่อตั้งค่าตัวแปรสภาพแวดล้อมได้
โดยปกติแล้วมันเป็นไปได้ที่จะตั้งค่าตัวแปรสภาพแวดล้อมสำหรับคำสั่งโดยนำหน้ามันเช่น: hello=hi bash -c 'echo $hello' ฉันรู้ด้วยว่าเราสามารถใช้ตัวแปรเพื่อทดแทนส่วนใดส่วนหนึ่งของการเรียกใช้คำสั่งดังนี้: $ cmd=bash $ $cmd -c "echo hi" # equivalent to bash -c "echo hi" ฉันประหลาดใจมากที่พบว่าคุณไม่สามารถใช้ตัวแปรเพื่อนำหน้าคำสั่งเพื่อตั้งค่าตัวแปรสภาพแวดล้อม กรณีทดสอบ: $ prefix=hello=hi $ echo $prefix # prints hello=hi $ $prefix bash -c 'echo $hello' hello=hi: command not found เหตุใดฉันจึงไม่สามารถตั้งค่าตัวแปรสภาพแวดล้อมโดยใช้ตัวแปรได้ ส่วนนำหน้าเป็นส่วนพิเศษหรือไม่? ฉันสามารถทำให้มันทำงานได้โดยใช้ eval ข้างหน้า แต่ฉันก็ยังไม่เข้าใจว่าทำไม ฉันใช้ทุบตี 4.4