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.
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ả
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ả
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ả
Ở đâ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ị.
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ả
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ể.