ติดตามส่วนพื้นหลังในคำถามนี้
ในbashที่ฉันสามารถใช้เพื่อทดแทนคู่ใน${!FOO} zsh ${(P)FOO}ทั้งในโรงเรียนเก่า (แฮ็ค - y) eval \$$FOOทำงาน
ดังนั้นสิ่งที่ฉลาดและสมเหตุสมผลที่สุดสำหรับฉันคือ${${FOO}}, ${${${FOO}}}…การทดแทนสอง / สาม / n เหตุใดจึงไม่ทำงานตามที่คาดไว้
ประการที่สอง: สิ่งที่\ทำในevalคำสั่ง? ฉันคิดว่ามันเป็นการหลบหนีทำให้บางอย่างeval \$$$FOOเป็นไปไม่ได้ จะทำการทดแทนแบบสาม / n ด้วยสิ่งนั้นได้อย่างไรในทุกเชลล์?
l3=l2; eval eval eval echo \\\$\\$\$$l3→53294ดังนั้นจึงไม่ใช่แบบแยกส่วน