ฉันใช้ zsh และชอบมันมาก แต่ทำงานได้มากกับแหล่ง Android ที่มีสคริปต์การคอมไพล์ที่ต้องการประเมินค่า bash อย่างถูกต้อง สคริปต์เหล่านี้จำเป็นต้องมีแหล่งที่มาก่อนการรวบรวมและกำหนดตัวแปรสภาพแวดล้อมและฟังก์ชั่นเชลล์ที่ใช้ในระหว่างการรวบรวม
Zsh ไม่สามารถหาแหล่งไฟล์เหล่านี้ได้และหากฉันพยายามที่จะออกemulate bash
เชลล์ของฉันกลายเป็นฟังก์ชั่นที่ไม่ทำงานพร้อมข้อผิดพลาดมากมายทุกครั้งที่ฉันกด Space (ฉันใช้ oh-my-zsh อาจเป็นสาเหตุได้หรือไม่):
url-quote-magic:24: bad pattern: ( ):/(|/localhost)/*
มีวิธีใดที่ฉันจะไม่เปลี่ยนเป็น bash เพื่อประเมินไฟล์เหล่านี้หรือเรียกใช้งาน bash instance และนำเข้าตัวแปร / ฟังก์ชั่นสภาพแวดล้อมใหม่ที่กำหนดไว้ในระหว่างการจัดหาเข้าสู่เซสชัน zsh ของฉัน หรือฉันถูกกำหนดให้เปลี่ยนเป็น bash ทุกครั้งที่ฉันต้องทำงานกับ Android?
แก้ไข : พบคำตอบสำหรับคำถามของฉันเอง ดูเหมือนว่าการจัดหาไฟล์โดยใช้เชลล์ตัวอื่นจะไม่สามารถทำได้ แต่ในกรณีที่ไฟล์มาโคร Android ล้มเหลวหน้านี้จะนำการแก้ไข:
http://nilvec.com/building-cyanogen-from-source/
โดยพื้นฐานแล้วการตั้งค่าอย่างง่ายunsetopt nomatch
จะขอให้ zsh หยุดการบ่นเกี่ยวกับ wildcard ที่ไม่ตรงกันซึ่งเพียงพอที่จะทำให้สคริปต์ดำเนินการให้เสร็จสิ้น ยังคงมีข้อผิดพลาดอีกข้อหนึ่งเกี่ยวกับการใช้complete
คำสั่ง bash ภายในเพื่อเพิ่มความสามารถในการเติมเต็มให้กับมาโคร Android หนึ่งตัว แต่มันไม่สำคัญอย่างยิ่งที่นี่