Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม BASH

Bash สำหรับตัวอย่างลูปและขณะวน

เช่นเดียวกับภาษาสคริปต์อื่น ๆ Bash ยังรองรับลูปอีกด้วย

ลูปเหมาะสำหรับการทำงานซ้ำๆ เราสามารถใช้ประโยชน์จาก for loops และ while loops ในสคริปต์ Bash ของเราได้

Bash สำหรับลูป

ไวยากรณ์ของ for loop คือ:

for VARIABLE in PARAM1 PARAM2 PARAM3
do
  // scope of for loop
done

for loop จะดำเนินการสำหรับแต่ละพารามิเตอร์ พารามิเตอร์อาจเป็นตัวเลข ช่วงของตัวเลขหรือสตริง เป็นต้น

Bash สำหรับตัวอย่างลูป

ตัวอย่างง่ายๆ นี้พิมพ์ตัวเลข 1 ถึง 5 โดยใช้ for loop:

#!/bin/bash

for i in 1 2 3 4 5
do
   echo "$i"
done

เอาท์พุต:

1
2
3
4
5

Bash For Loop - ช่วงการพิมพ์ของตัวเลข

นอกจากนี้เรายังสามารถกำหนดช่วงของตัวเลขที่จะวนซ้ำ:

ตัวอย่างเช่น:

for i in {1..5}
do
   echo "$i"
done

เอาท์พุต:

1
2
3
4
5

Bash ลูปทรูสตริง

นอกจากนี้เรายังสามารถใช้ for loop เพื่อวนซ้ำพารามิเตอร์สตริง:

#!/bin/bash

for day in MON TUE WED THU FRI SAT SUN
do
   echo "$day"
done

เอาท์พุต:

MON
TUE
WED
THU
FRI
SAT
SUN

Bash For Loop - สไตล์ C

เรายังสามารถใช้รูปแบบ C-style เพื่อเขียน for loop ตัวอย่างเช่น:

#!/bin/bash

for ((i=1; i<=5; i++))
do
  echo "$i"
done

เอาท์พุต

1
2
3
4
5

สำหรับการวนซ้ำเพื่อพิมพ์รายการไฟล์ในไดเรกทอรีปัจจุบัน

ในการแสดงรายการไฟล์ทั้งหมดในไดเร็กทอรีปัจจุบันโดยใช้ bash for loop เราใช้:

#!/bin/bash

for fname in ./
do
  ls -l $fname
done

ทุบขณะวนซ้ำ

Bash ยังรองรับในขณะที่ลูป ในขณะที่ลูปรันชุดคำสั่งจนกว่าเงื่อนไขจะประเมินเป็นจริง

ไวยากรณ์สำหรับ Bash while loop คือ:

while [condition]
do
  //execute instructions
done

เงื่อนไขจะได้รับการประเมินก่อนดำเนินการตามคำสั่งใดๆ ดังนั้นจึงจำเป็นต้องมีวิธีการอัพเดทเงื่อนไข มิฉะนั้น ลูปจะทำงานตลอดไป

Bash ในขณะที่ตัวอย่างลูป

ต่อไปนี้เป็นการวนซ้ำแบบง่ายที่พิมพ์ตัวเลข 1 ถึง 5 การวนซ้ำจะสิ้นสุดลงเมื่อตัวเลขมากกว่า 5

#!/bin/bash

num=1
while [ $num -le 5 ]
do
   echo "$num"
   let num++
done

ทุบตีสไตล์ C ขณะวนซ้ำ

เช่นเดียวกับ for loop เราสามารถเขียน bash while loop ในภาษา C ได้

ตัวอย่างเช่น:

#!/bin/bash

num=1
while((num <= 5))
do
   echo $num
   let num++
done