记录:430
场景:Shell脚本for循环语句应用。
版本:CentOS Linux release 7.9.2009。
1.for循环常用格式
1.1格式:for(;;)
for((expression1; expression2; expression3))
do
command1
command2
...
commandN
done
1.2格式:for in
for item in item1 item2 ... itemN
do
command1
command2
...
commandN
done
2.使用for(;;)遍历数组
2.1脚本
脚本名称:b2023051801.sh
脚本内容:
#!/bin/bash
#1.定义数组
cityArray=("上海" "苏州" "杭州")
#2.获取数组长度
lenth=${#cityArray[@]}
#3.使用for循环遍历数组
for ((i=0; i<lenth; i++))
do
echo "第$((i+1))个城市名称: ${cityArray[i]}"
done
2.2执行与输出
执行命令:bash b2023051705.sh
执行结果:
第1个城市名称: 上海
第2个城市名称: 苏州
第3个城市名称: 杭州
3.使用for in遍历数组(使用@字符)
3.1脚本
脚本名称:b2023051802.sh
脚本内容:
#!/bin/bash
#1.定义数组
cityArray=("上海" "苏州" "杭州")
#2.使用for循环遍历数组
for item in ${cityArray[@]}
do
echo "城市名称: ${item}"
done
3.2执行与输出
执行命令:bash b2023051802.sh
执行结果:
第1个城市名称: 上海
第2个城市名称: 苏州
第3个城市名称: 杭州
4.使用for in遍历数组(使用*字符)
4.1脚本
脚本名称:b2023051803.sh
脚本内容:
#!/bin/bash
#1.定义数组
cityArray=("上海" "苏州" "杭州")
#2.使用for循环遍历数组
for item in ${cityArray[*]}
do
echo "城市名称: ${item}"
done
4.2执行与输出
执行命令:bash b2023051803.sh
执行结果:
第1个城市名称: 上海
第2个城市名称: 苏州
第3个城市名称: 杭州
5.使用for in遍历字符串(字符串之间带空格)
5.1脚本
脚本名称:b2023051804.sh
脚本内容:
#!/bin/bash
#1.使用for循环遍历字符串,字符串间带空格
for item in "杭州" "苏州" "上海"
do
echo "城市名称: ${item}"
done
5.2执行与输出
执行命令:bash b2023051804.sh
执行结果:
城市名称: 杭州
城市名称: 苏州
城市名称: 上海
6.使用for in遍历数字(数字之间带空格)
6.1脚本
脚本名称:b2023051805.sh
脚本内容:
#!/bin/bash
#1.使用for循环遍历数字,数字间带空格
for item in 1024 2048 4096
do
echo "数字: ${item}"
done
6.2执行与输出
执行命令:bash b2023051805.sh
执行结果:
数字: 1024
数字: 2048
数字: 4096
7.使用for in遍历数字范围(两个数字之间值包括本身)
7.1脚本
脚本名称:b2023051806.sh
脚本内容:
#!/bin/bash
#1.使用for循环遍历数字,两个数字之间的值
for item in {112..118}
do
echo "数字: ${item}"
done
7.2执行与输出
执行命令:bash b2023051806.sh
执行结果:
数字: 112
数字: 113
数字: 114
数字: 115
数字: 116
数字: 117
数字: 118
8.使用for in遍历字符范围(两个字符串之间值包括本身)
8.1脚本
脚本名称:b2023051807.sh
脚本内容:
#!/bin/bash
#1.使用for循环遍历字符,两个字符之间的值
for item in {A..b}
do
printf "%c" ${item}
done
8.2执行与输出
执行命令:bash b2023051807.sh
执行结果:
ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`ab
9.使用for in遍历命令执行结果(使用$()方式)
9.1脚本
脚本名称:b2023051808.sh
脚本内容:
#!/bin/bash
#1.使用for循环遍历命令执行结果
for item in $(cat province.txt)
do
echo "${item}"
done
9.2执行与输出
执行命令:bash b2023051808.sh
执行结果:
长三角省份有浙江、江苏等。
长三角最大都市是上海。
长三角经济发达。
10.使用for in遍历命令执行结果(使用``方式)
10.1脚本
脚本名称:b2023051809.sh
脚本内容:
#!/bin/bash
#1.使用for循环遍历命令执行结果
for item in `cat province.txt`
do
echo "${item}"
done
10.2执行与输出
执行命令:bash b2023051809.sh
执行结果:
长三角省份有浙江、江苏等。
长三角最大都市是上海。
长三角经济发达。
11.使用for in遍历文件列表(使用``方式)
11.1脚本
脚本名称:b2023051810.sh
脚本内容:
#!/bin/bash
#1.使用for循环遍历命令执行结果
for item in `ls *.sh`
do
echo "${item}"
done
11.2执行与输出
执行命令:bash b2023051810.sh
执行结果:
b2023051801.sh
b2023051802.sh
b2023051803.sh
b2023051804.sh
b2023051805.sh
b2023051806.sh
b2023051807.sh
b2023051808.sh
b2023051809.sh
b2023051810.sh
12.使用for in遍历通配符匹配结果
12.1脚本
脚本名称:b2023051811.sh
脚本内容:
#!/bin/bash
#1.使用for循环遍历通配符执行结果
for item in *.sh
do
echo "${item}"
done
12.2执行与输出
执行命令:bash b2023051811.sh
执行结果:
b2023051801.sh
b2023051802.sh
b2023051803.sh
b2023051804.sh
b2023051805.sh
b2023051806.sh
b2023051807.sh
b2023051808.sh
b2023051809.sh
b2023051810.sh
b2023051811.sh
13.使用for in遍历特殊变量($*和$@)
13.1脚本
脚本名称:b2023051812.sh
脚本内容:
#!/bin/bash
#1.使用for循环遍历$@
function f1(){
for item in $@
do
echo "${item}"
done
}
#2.使用for循环遍历$*
function f2(){
for item in $*
do
echo "${item}"
done
}
echo '1.遍历$@执行结果'
f1 "杭州" "苏州" "上海"
echo '2.遍历$*执行结果'
f2 "Hangzhou" "Suzhou" "Shanghai"
13.2执行与输出
执行命令:bash b2023051812.sh
执行结果:
1.遍历$@执行结果
杭州
苏州
上海
2.遍历$*执行结果
Hangzhou
Suzhou
Shanghai
14.使用for in遍历特殊变量(省略特殊字符)
14.1脚本
脚本名称:b2023051813.sh
脚本内容:
#!/bin/bash
#1.使用for循环遍历省略特殊变量
function f1(){
for item
do
echo "${item}"
done
}
14.2执行与输出
执行命令:bash b2023051813.sh
执行结果:
1.遍历省略特殊变量执行结果
杭州
苏州
上海
15.使用for in查找指定目录下文件
15.1脚本
脚本名称:b2023051814.sh
脚本内容:
#!/bin/bash
#1.获取当前目录路径
dirPath=`pwd`
#2.查找当前目录的下一级目录名称
for dirName in `find . -maxdepth 1 -type d -name "tutorial*"`
do
result=$(echo "${dirName}" | grep "tutorial-2023")
if [[ "${result}" != "" ]];then
echo "目录名称: ${result}"
fi
done
15.2执行与输出
执行命令:bash b2023051814.sh
执行结果:
目录名称: ./tutorial-20230517
目录名称: ./tutorial-20230518
以上,感谢。
2023年5月18日