shell循环结构有三种
- while语句
- until语句
- for语句
while 语法
while 条件(test或[]其他 Linux命令都是有返回值的,命令执行成功就返回0;失败就返回一个非零值,一般情况下是1)
do
要循环执行的语句
done
#do 和done 之间的即为循环体
while 示例
#! /bin/bash
echo "PID: $$"
echo "PPID: $PPID"
echo "UID: $UID"
sum=0
num=1
while test $num -le 100
do
sum=$[ $sum+$num ]
let num=$num+1
done
echo "1到100的和为: $sum"
until语法
#until 直到条件为假的时候执行
until 条件为假执行
do
要循环执行的语句
done
until示例
#! /bin/bash
echo "PID: $$"
echo "PPID: $PPID"
echo "UID: $UID"
sum=0
num=1
until ! test $num -le 100
do
sum=$[ $sum+$num ]
let num=$num+1
done
echo "1到100的和为: $sum"
注意:也就是说while test $num -le 100
等价于 until ! test $num -le 100
for语法
for var [in list]
do
要循环执行的语句
done
# [in list] 值表,是一系列以空格分隔的值
for 示例
#! /bin/bash
for i in 1 2 3 4
do
echo "$i"
done
# 执行结果输出 1 2 3 4 。每次循环的时候从值表中取出一个值(按顺序取),并把它赋值给变量i
# for i in 1 2 3 4 还可以写成 for i in `seq 4` seq是shell自己的工具,该命令接收一个数字范围,并把它转换为一个列表
# for语句也可以接受字符串组成的列表
下面这个脚本是统计当前目录下非文件夹的文件个数
#! /bin/bash
count=0
for file in `ls`
do
if ! [ -d $file ];then
let count=$count+1
fi
done
echo "`pwd`目录下的文件个数为$count"
来源:CSDN
作者:时光如瑾
链接:https://blog.csdn.net/weixin_42873160/article/details/103664966