一、while循环的基本概念
while command
do
statements
done
使用while循环,当command
命令返回真(0)时,执行statements
语句,然后再次执行command
命令进行判断,直到command
命令返回假(非0)时,跳出循环体。
二、while循环结合read命令实现遍历文件内容
cat file.txt | while read line
do
echo $line
done
使用read
命令以行为单位遍历file.txt
文件内容,每次读取一行,赋值给变量line
,然后执行echo
语句将line
变量的值输出。
三、使用while循环和条件判断实现自动备份脚本
#!/bin/bash
backup_dir=/backup #备份目录
date=$(date +%Y%m%d) #获取当前日期
if [ ! -d $backup_dir/$date ] #判断备份目录下是否存在当天的备份目录
then
mkdir -p $backup_dir/$date #不存在则创建备份目录
fi
while [ true ]
do
file_count=$(ls /data | wc -l) #获取/data目录下文件数量
if [ $file_count -gt 100 ] #如果数量大于100,则备份整个目录,并退出循环
then
tar -czvf /tmp/data-$date.tar.gz /data
mv /tmp/data-$date.tar.gz $backup_dir/$date
break
fi
sleep 600 #如果数量不足100,则等待10分钟(600秒),再次检查
done
该脚本用于判断/data
目录下文件数量是否超过100个,如果超过则进行整个目录的备份,并退出循环。脚本中,使用while
循环持续检查文件数量,如果文件数量不多于100个,则使用sleep
命令进入休眠状态(10分钟),等待下一轮判断。