for循环
for循环是固定循环,就是在循环时就已经知道要进行几次的循环,有时也把for循环称为计数循环,for循环的语法有下面两种。
语法一:
for 变量 in 值1 值2 值3...
do
程序
done
将值1、值2、值3…赋予变量,有几个值就循环几次。
例:将目录下的.sh文件都导入到一个.txt文件中
#!/bin/bash
#将目录下所有.sh文件都写入一个.txt文件中
cd /root/sh
#进入操作目录
filename=$(ls *.sh)
for i in $filename
do
echo " " >>filesum.txt
cat $i >>filesum.txt
done
语法二:
for ((赋值;条件;运算))
do
程序
done
例1:利用for循环计算1加到100的值
#!/bin/bash
#计算1加到100的和
for ((i=1;i<=100;i++))
do
s=$(($s+i))
done
echo $s
例2:将目录下的.sh文件都导入到一个.txt文件中
#!/bin/bash
#将目录下所有.sh文件都写入一个.txt文件中
cd /root/sh
#进入操作目录
filenum=$(ls -l *.sh | grep -v "总用量" | awk '{print $9}' | wc -l)
#计算目标文件数量
ls *.sh >>sh.log
#将文件名称导入到临时文件中
for ((i=1;i<=$filenum;i++))
do
filename=$(cat sh.log | awk 'NR=='$i' {print}')
#提取文件名称
echo " " >>filesum.txt
cat $filename >>filesum.txt
done
rm -rf sh.log
#删除临时文件
while循环
当条件成立时执行程序,条件不满足时终止循环。
语句格式:
while [条件判断式]
do
程序
done
例:计算1加到100
#!/bin/bash
#计算1加到100
i=1
s=0
while [ $i -le 100 ]
#执行程序知道i大于100
do
s=$((s+i))
i=$((i+1))
done
echo "sum=$s"
until循环
和while循环不同,until循环在条件不成立时执行程序,直到达成条件终止循环。
语句格式:
until [条件判断式]
do
程序
done
ps:尚硅谷linux视频课程学习笔记