Home ProgramingBash Shell Cách sử dụng vòng lặp until trong shell script

Cách sử dụng vòng lặp until trong shell script

by Quốc Cường
72 views

Vòng lặp Until được sử dụng để thực thi một khối mã đươc lặp đi lặp lại dựa trên kết quả boolean của một biểu thức. Tập hợp các lệnh chỉ được thực hiện cho đến khi biểu thức đánh giá là true. Nó có nghĩa là khi biểu thức đánh giá là false, một tập hợp các lệnh sẽ được thực hiện lặp đi lặp lại. Vòng lặp được kết thúc ngay sau khi biểu thức đánh giá là true lần đầu tiên.

Như đã biết, trong bash shell có các vòng lặp cấu trúc như For, While, Until. Mỗi một vòng lặp đều có chức năng và cú pháp khác nhau. Tuy nhiên mục đích của chúng là đều lặp lại một khối lệnh thực thi.

Vòng lặp while là một lựa chọn tuyệt vời để thực hiện một tập hợp các lệnh khi một số điều kiện đánh giá là true. Đôi khi, chúng ta cần thực hiện một tập hợp các lệnh cho đến khi một điều kiện được đánh giá là true. Trong những trường hợp như vậy, vòng lặp Until rất hữu ích.

Cú pháp:

until [CONDITION]
do
  [COMMANDS]
done
done

Phân tích cú pháp:

  • Vòng lặp bắt đầu bằng từ khóa until và theo sau là một biểu thức được đặt trong dấu ngoặc đơn hoặc dấu ngoặc kép.
  • Biểu thức phải được đánh giá là sai trước khi bắt đầu thực thi khối mã.
  • Khối mã thực thi phải được đặt giữa bên trong do done

Để dễ hình dung hơn chung ta hãy thực hành một số ví dụ đơn giản sau:

Ví dụ cơ bản về vòng lặp Until

Tạo 1 vòng lặp vô hạn

Bạn có thể tạo 1 vòng lặp vô hạn khi sử dụng điều kiện false dưới dạng 1 biểu thức. Lưu ý khi sử dụng vòng lặp vô hạn, bạn hãy đặt lệnh sleep để vòng lặp thực hiện định kì để chúng ta dễ nhìn hơn.

#!/bin/bash

count=0
until false
do
	echo "Counter = $count"
	((count++))
	sleep 2
done
Cách Sử Dụng Vòng Lặp Until Trong Shell Script

Chúng ta cũng có thể viết câu lệnh tương tự như ví dụ trên và trên 1 dòng đơn.

# until false; do echo "Counter = $count"; ((count++)); sleep 2; done

Lặp với nhiều điều kiện trong 1 biểu thức

#!/bin/bash  

  
max=5  
a=1  
b=0  
  
until [[ $a -gt $max || $b -gt $max ]];  
do  
echo "a = $a & b = $b."  
((a++))  
((b++))  
done  
Cách Sử Dụng Vòng Lặp Until Trong Shell Script

Sử dụng lệnh break và continue

Bạn cũng có thể sử dụng lệnh break và continue bên trong vòng lặp Until tương tự như vòng lặp While. Câu lệnh break sẽ thoát ra khỏi vòng lặp và chuyển qua câu lệnh tiếp theo trong khi câu lệnh continue sẽ bỏ qua lần lặp hiện tại và bắt đầu lần lặp tiếp theo.

Chúng ta xem xét ví dụ sau:

#!/bin/bash

count=0
until false
do
  ((count++))
  if [[ $count -eq 5 ]]
  then
    continue
  elif [[ $count -ge 10 ]]
  then
    break
  fi
  echo "Counter = $count"
done

Sử dụng lại vòng lặp vô hạn ở ví dụ 1, khi lượt lặp $count -eq 5 có giá trị bằng 5 vòng lặp sẽ bỏ qua và không hiện giá trị này và sẽ chuyển sang lượt lặp kế tiếp.

Tương tự vòng lặp sẽ bị ngắt khi $count -ge 10 có gia trị bằng 10.

Cách Sử Dụng Vòng Lặp Until Trong Shell Script

Kết luận

Vòng lặp Until cũng là một trong số các vòng lặp cơ bản trong Bash Script, chúng tôi hy vọng thông qua bài biết này có thể mang lại có cái nhìn tổng thể hơn về cách sử dụng vòng lặp này.

Chúc các bạn thành công.

Leave a Comment