赞
踩
记录: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日
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。