SHELL使用--for循环语句

for循环

for循环语法

# 语法(shell特征:根据值进行循环)
for i in 值1 值2 值3
do
    echo $i
done

示例一:固定值循环

[root@egon day05]# cat 7.sh 
#!/bin/bash
for i in "aaa" 222 "ccc"
do
    echo $i
done

示例二:执行结果循环

# 将目录中的文件作为执行条件,循环进行改名
[root@egon day05]# cat 8.sh 
#!/bin/bash
for i in `ls /scripts/day05`
do
    mv $i ${i/txt/sh}
done

示例三:数值循环

# 这里将1-5的值都进行了循环,然后依次显示
#!/bin/bash
for i in {5..1}
do
   echo $i
done

for i in {a..z}
do
   echo $i
done

示例四:ip检测

# 将范围内所有的值进行循环,值有多少就循环多少次
#!/bin/bash
for i in {1..254}
do
    ping -c1 10.0.0.$i &>/dev/null
    [ $? -eq 0 ] && echo 10.0.0.$i
done

示例五:结合break和continue

# 使用结果和while一致,当使用continue时,将当前循环结束,不执行循环下方指令,但使用break将直接结束本层循环,也就直接退出,只会有AB两个结果
[root@egon day05]# cat 9.sh 
#!/bin/bash
for i in {A..Z}
do
   if [ $i == "C" ];then
     # break
     continue
   fi
   echo $i
done

案例六:统计文件夹下所有文件类型

# 对传入参数中的文件或目录进行判断,统计文件或其他文件类型数量

#!/bin/bash
[ $# -ne 1 ] && echo "必须传入一个参数" && exit

regular=0
dir=0
link=0
other=0
for fname in `ls $1`
do
	if [ -L "$1/$fname" ];then
    	let link++
    elif [ -f "$1/$fname" ];then
        let regular++
    elif [ -d "$1/$fname" ];then
    	let dir++
    else
         let other++
    fi
done
echo "标准文件个数:$regular"
echo "目录文件个数:$dir"
echo "软连接文件个数:$link"
echo "其他文件个数:$other"
原文地址:https://www.cnblogs.com/tcy1/p/13578861.html