Logo

Personal Ops Runbook

Personal runbook covering infrastructure operations for Cloud, Kubernetes, OpenStack, and Ceph environments. Includes deployment and teardown procedures, node management, cluster monitoring setup, and incident response workflows compiled from day-to-day operational work. Intended strictly for personal reference — configurations and scripts are environment-specific and not guaranteed to work as-is elsewhere.

[Bash] Lesson 18 – Bash While Loop


Vòng lặp While trong Bash Trong chủ đề này, chúng ta đã thể hiện cách sử dụng câu lệnh while loop trong Bash Script.

image

Vòng lặp while của bash có thể được định nghĩa là một câu lệnh điều khiển luồng điều khiển cho phép thực hiện tập hợp các lệnh đã cho lặp lại cho đến khi điều kiện được áp dụng đánh giá là đúng. Ví dụ, chúng ta có thể chạy lệnh echo nhiều lần hoặc chỉ đọc một file văn bản từng dòng và xử lý kết quả bằng cách sử dụng vòng lặp while trong Bash.

Cú pháp của Bash While Loop Vòng lặp while của Bash có định dạng như sau:

while [ expression ];
do
commands;
multiple commands;
done

Cú pháp trên chỉ áp dụng khi biểu thức chứa một điều kiện duy nhất.

Nếu có nhiều điều kiện để bao gồm trong biểu thức, thì cú pháp của vòng lặp while sẽ như sau:

while [ expressions ];
do
commands;
multiple commands;
done

Cú pháp của vòng lặp while trong một dòng có thể được định nghĩa như sau:

while [ condition ]; do commands; done
while control-command; do Commands; done

Dưới đây là một số điểm quan trọng của lệnh vòng lặp ‘while’:

  • Điều kiện được kiểm tra trước khi thực hiện các lệnh.
  • Vòng lặp ‘while’ cũng có khả năng thực hiện tất cả công việc giống như vòng lặp ‘for’.
  • Các lệnh giữa ‘do’ và ‘done’ được thực hiện lặp đi lặp lại cho đến khi điều kiện được đánh giá là sai.
  • Các đối số cho một vòng lặp ‘while’ có thể là một biểu thức boolean.

Cách hoạt động Vòng lặp while là một vòng lặp nhập hẹp. Điều này có nghĩa là điều kiện được kiểm tra trước khi thực hiện các lệnh trong vòng lặp while. Nếu điều kiện được đánh giá là đúng, các lệnh theo sau điều kiện đó sẽ được thực thi. Ngược lại, vòng lặp sẽ kết thúc và điều khiển chương trình sẽ được chuyển sang các lệnh khác sau câu lệnh ‘done’.

Các ví dụ về vòng lặp while trong Bash Dưới đây là một số ví dụ về vòng lặp while trong Bash:

Vòng lặp while với một điều kiện duy nhất Trong ví dụ này, vòng lặp while được sử dụng với một điều kiện duy nhất trong biểu thức. Đây là ví dụ cơ bản về vòng lặp while sẽ in ra chuỗi số theo đầu vào của người dùng:

#!/bin/bash
#Script to get specified numbers

read -p "Enter starting number: " snum
read -p "Enter ending number: " enum

while [[ $snum -le $enum ]];
do
echo $snum
((snum++))
done

echo "This is the sequence that you wanted."

Kết quả

image

Vòng lặp While với nhiều điều kiện

Dưới đây là một ví dụ về vòng lặp while với nhiều điều kiện trong biểu thức:

Ví dụ:

#!/bin/bash
#Script to get specified numbers

read -p "Enter starting number: " snum
read -p "Enter ending number: " enum

while [[ $snum -lt $enum || $snum == $enum ]];
do
echo $snum
((snum++))
done

echo "This is the sequence that you wanted."

Kết quả

image

Vòng lặp While vô hạn

Một vòng lặp vô hạn là một vòng lặp không có điểm kết thúc hoặc kết thúc. Nếu điều kiện luôn đánh giá đúng, nó sẽ tạo ra một vòng lặp vô hạn. Vòng lặp sẽ được thực thi liên tục cho đến khi bị ngừng một cách bắt buộc bằng cách sử dụng CTRL + C :

Ví dụ:

#!/bin/bash
#An infinite while loop

while :
do
echo "Welcome to Javatpoint."
done

Chúng ta cũng có thể viết đoạn mã trên trong một dòng duy nhất như sau:

#!/bin/bash
#An infinite while loop

while :; do echo "Welcome to Javatpoint."; done

Kết quả

image

Ở đây, chúng tôi đã sử dụng lệnh tích hợp sẵn (:) luôn trả về giá trị đúng. Chúng ta cũng có thể sử dụng lệnh tích hợp sẵn true để tạo một vòng lặp vô hạn như sau:

Ví dụ:

#!/bin/bash
#An infinite while loop

while true
do
echo "Welcome to Javatpoint"
done

Kịch bản bash này cũng sẽ cung cấp cùng đầu ra với một kịch bản vô hạn ở trên.

Vòng lặp while với lệnh Break

Lệnh break có thể được sử dụng để dừng vòng lặp dựa trên điều kiện được áp dụng. Ví dụ:

Ví dụ:

#!/bin/bash
#While Loop Example with a Break Statement

echo "Countdown for Website Launching..."
i=10
while [ $i -ge 1 ]
do
if [ $i == 2 ]
then
    echo "Mission Aborted, Some Technical Error Found."
    break
fi
echo "$i"
(( i-- ))
done

Theo kịch bản, vòng lặp được gán để lặp lại mười lần. Nhưng sau tám lần lặp, có một điều kiện sẽ ngừng lặp lại và kết thúc vòng lặp. Sau khi thực thi kịch bản, đầu ra sau đây sẽ được hiển thị.

image

Vòng lặp while với lệnh continue

Lệnh continue có thể được sử dụng để bỏ qua lần lặp cho một điều kiện cụ thể bên trong vòng lặp while.

Ví dụ:

#!/bin/bash
#While Loop Example with a Continue Statement

i=0
while [ $i -le 10 ]
do
((i++))
if [[ "$i" == 5 ]];
then
    continue
fi
echo "Current Number : $i"
done

echo "Skipped number 5 using Continue Statement."

Vòng lặp while với kiểu dáng C

Chúng ta cũng có thể viết vòng lặp while trong kịch bản bash giống như vòng lặp while trong ngôn ngữ lập trình C.

Ví dụ:

#!/bin/bash
#While loop example in C style

i=1
while((i <= 10))
do
echo $i
let i++
done

Kết quả

image

Kết luận

Trong chủ đề này, chúng ta đã thảo luận về cách sử dụng câu lệnh vòng lặp while trong Bash để thực hiện các tác vụ cụ thể.