3
ในสคริปต์ bash shell ให้เขียน a for loop ที่วนซ้ำค่าสตริง
ใน bash ฉันรู้ว่ามันเป็นไปได้ที่จะเขียนforloop ซึ่งตัวแปรควบคุมการiวนซ้ำนั้นวนซ้ำตามจำนวนเต็มที่ระบุ ตัวอย่างเช่นฉันสามารถเขียน bash shell script ที่พิมพ์จำนวนเต็มระหว่าง 1 ถึง 10: #!/bin/bash for i in {1..10} do echo $i done เป็นไปได้หรือไม่ที่จะวนซ้ำตัวแปรการควบคุมลูปที่เป็นสตริงแทนถ้าฉันจัดเตรียมรายการสตริง? ตัวอย่างเช่นสมมติว่าฉันมีสตริงfnameที่แสดงชื่อไฟล์ ฉันต้องการเรียกชุดคำสั่งสำหรับแต่ละชื่อไฟล์ ตัวอย่างเช่นฉันอาจต้องการพิมพ์เนื้อหาของการfnameใช้คำสั่งเช่นนี้: #!/bin/bash for fname in {"a.txt", "b.txt", "c.txt"} do echo $fname done กล่าวอีกนัยหนึ่งในการทำซ้ำครั้งแรกfnameควรมีค่าfname="a.txt"ในขณะที่การทำซ้ำครั้งที่สองfnameควรมีค่าfname="b.txt"และอื่น ๆ น่าเสียดายที่ดูเหมือนว่าไวยากรณ์ข้างต้นไม่ถูกต้องนัก ฉันต้องการได้รับผลลัพธ์: a.txt b.txt c.txt แต่เมื่อฉันลองรหัสข้างต้นฉันได้ผลลัพธ์นี้: {a.txt, b.txt, c.txt} คุณช่วยฉันในการกำหนดไวยากรณ์ที่ถูกต้องเพื่อที่ฉันจะสามารถเปลี่ยนค่า / เนื้อหาของตัวแปรได้fnameหรือไม่? …
24
bash
shell-script
for