ฉันจะวนซ้ำในช่วงของตัวเลขใน Bash ได้อย่างไรเมื่อช่วงถูกกำหนดโดยตัวแปร
ฉันรู้ว่าฉันสามารถทำได้ (เรียกว่า "ลำดับนิพจน์" ในเอกสาร Bash ):
for i in {1..5}; do echo $i; done
ซึ่งจะช่วยให้:
1
2
3
4
5
แต่ฉันจะแทนที่จุดปลายของช่วงใดช่วงหนึ่งด้วยตัวแปรได้อย่างไร สิ่งนี้ใช้ไม่ได้:
END=5
for i in {1..$END}; do echo $i; done
สิ่งที่พิมพ์:
{} 1..5
for i in {01..10}; do echo $i; done
01, 02, 03, ..., 10
myarray=('a' 'b' 'c'); for i in ${!myarray[@]}; do echo $i; done
(สังเกตเครื่องหมายอัศเจรีย์) มันเฉพาะเจาะจงกว่าคำถามเดิม แต่สามารถช่วยได้ ดูการขยายพารามิเตอร์ bash
{jpg,png,gif}
ที่ไม่ได้กล่าวถึงที่นี่โดยตรงแม้ว่าคำตอบจะเหมือนกัน ดูการขยายรั้งด้วยตัวแปร? [ซ้ำ]ซึ่งทำเครื่องหมายว่าซ้ำกับอันนี้