记录:433
场景:Shell脚本while循环语句应用。Shell脚本while循环语句应用。while do done、while : do done、while true do done。
版本:CentOS Linux release 7.9.2009。
1.while常用格式
1.1格式一:while do done
while condition
do
command
done
1.2格式二:无限循环(while : do done)
while :
do
command
done
1.3格式三:无限循环(while true do done)
while true
do
command
done
2.使用while遍历数组(while do done)
2.1脚本
脚本名称:b2023052801.sh
脚本内容:
#!/bin/bash
#1.定义数组
cityArray=("上海" "苏州" "杭州" "宁波")
#2.获取数组长度
lenth=${#cityArray[@]}
#3.使用while循环遍历数组
index=0
while ((index < lenth))
do
echo "第$((index+1))个城市名称: ${cityArray[index]}"
((index++))
done
2.2执行与输出
执行命令:bash b2023052801.sh
执行结果:
[root@hadoop211 tutorial]# bash b2023052801.sh
第1个城市名称: 上海
第2个城市名称: 苏州
第3个城市名称: 杭州
第4个城市名称: 宁波
3.使用while无限循环(while : do done)
3.1脚本
脚本名称:b2023052802.sh
脚本内容:
#!/bin/bash
#1.定义数组
cityArray=("上海" "苏州" "杭州" "宁波")
#2.获取数组长度
lenth=${#cityArray[@]}
#3.使用while循环遍历数组(使用字符串判断,=号两端需要空格)
index=0
while :
do
if [[ "${cityArray[index]}" = "杭州" ]];then
echo "第$((index+1))个城市名称: ${cityArray[index]}"
break;
fi
((index++))
done
3.2执行与输出
执行命令:bash b2023052802.sh
执行结果:
[root@hadoop211 tutorial]# bash b2023052802.sh
第3个城市名称: 杭州
4.使用while无限循环(while true do done)
4.1脚本
脚本名称:b2023052803.sh
脚本内容:
#!/bin/bash
#1.定义数组
cityArray=("上海" "苏州" "杭州" "宁波")
#2.获取数组长度
lenth=${#cityArray[@]}
#3.使用while循环遍历数组(使用字符串判断,=号两端需要空格)
index=0
while true
do
if [[ "${cityArray[index]}" = "苏州" ]];then
echo "第$((index+1))个城市名称: ${cityArray[index]}"
break;
fi
((index++))
done
4.2执行与输出
执行命令:bash b2023052803.sh
[root@hadoop211 tutorial]# bash b2023052803.sh
第2个城市名称: 苏州
5.使用while循环(while read do done)
5.1脚本
脚本名称:b2023052804.sh
脚本内容:
#!/bin/bash
echo -n '请输入长三角直辖市名称: '
while read city
do
#注意if和[[]]之间需要空格
if [[ $city = "上海" || $city = "Shanghai" ]];then
echo "${city}是长三角直辖市."
break;
else
echo "${city}不是长三角直辖市."
echo -n '请输入长三角直辖市名称: '
fi
done
5.2执行与输出
执行命令:bash b2023052804.sh
执行结果:
[root@hadoop211 tutorial]# bash b2023052804.sh
请输入长三角直辖市名称: 苏州
苏州不是长三角直辖市.
请输入长三角直辖市名称: 上海
上海是长三角直辖市.
6.使用while循环(while read do done < )
6.1脚本
脚本名称:b2023052805.sh
脚本内容:
#!/bin/bash
echo '从文件中读取内容'
filePath=`pwd`
while read line
do
echo ${line}
done <${filePath}/province.txt
6.2执行与输出
执行命令:bash b2023052805.sh
执行结果:
[root@hadoop211 tutorial]# bash b2023052805.sh
从文件中读取内容
长三角省份有浙江、江苏等。
长三角最大都市是上海。
长三角经济发达。
以上,感谢。
2023年5月28日