Shell脚本while循环语句应用

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

你可能感兴趣的:(L02-Shell基础,Shell脚本while循环,while循环语句应用,运维,Shell编程)