Shell脚本while循环语句应用

文章详细介绍了在Shell脚本中while循环的三种基本形式:whiledodone、while:dodone和whiletruedodone,以及如何遍历数组和从输入读取数据。通过示例脚本展示了如何在不同场景下使用这些循环结构,包括查找特定城市和从文件中读取内容。
摘要由CSDN通过智能技术生成

记录: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日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值