คำถามติดแท็ก brace-expansion

กลไกเชลล์ที่ใช้ในการสร้างสตริงโดยพลการ

1
เหตุใดช่วงการขยายรั้งใช้จุดสองจุดแทนที่จะเป็นสามจุด (จุดไข่ปลา)
ในที่สุดผมก็เข้าใจ / ค้นพบว่าทำไมฉันไม่เคยมีการใช้bash's (และยังzsh' s) ช่วงการขยายตัวรั้งถูกต้อง: ไวยากรณ์คือ{1..10}แทนสิ่งที่ผมถือว่าจะเป็นจุดไข่ปลา{1...10}คือ ฉันขอทราบได้ไหมว่าเพราะเหตุใดจึงเลือกสองจุดผ่านสามจุด การใช้จุดไข่ปลาในการเขียนโปรแกรมคอมพิวเตอร์เป็นเรื่องปกติและเข้าใจดีตามลิงค์ (Wikipedia) ซึ่งเป็นสาเหตุที่ทำให้ความอยากรู้อยากเห็นของฉันป่องๆ

4
การขยายตัวของค้ำยันจากขวาไปซ้าย
ใน zsh (และเชลล์อื่น ๆ ) ถ้าฉันมีอาร์กิวเมนต์เช่น (ตัวอย่าง): {a,b,c}{d,e,f} การขยายรั้งเปลี่ยนเป็น: ad ae af bd be bf cd ce cf สำหรับวัตถุประสงค์ของฉันลำดับการโต้แย้งมีความสำคัญและฉันต้องการเครื่องมือจัดฟันเพื่อขยายจากขวาไปซ้ายแทนซ้ายไปขวา นั่นคือฉันต้องการขยายตัวเป็น: ad bd cd ae be ce af bf cf มีวิธีควบคุมลำดับของการจัดฟันหลายชุดหรือไม่? ฉันกำลังมองหาบางสิ่งบางอย่างที่จะทำงานในสถานการณ์ใด ๆ ไม่เพียง แต่มีข้อโต้แย้งเหล่านี้


3
วงเล็บปีกกา 'Binding'
ใน Bash echo a{b,c}d{e,f} พิมพ์ abde abdf acde acdf ผลลัพธ์ที่ฉันต้องการดูคือ abde acdf กล่าวอีกนัยหนึ่งเมื่อได้รับพารามิเตอร์Nฉันต้องการให้ Bash ใช้พารามิเตอร์i th ภายในวงเล็บปีกกาแต่ละคู่เพื่อสร้างสตริงN
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.