HomeProgramingBash ShellCá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
91 views
Mục lục

    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