当前位置:   article > 正文

Shell脚本for循环语句应用_shell for 字符串

shell for 字符串

记录:430

场景Shell脚本for循环语句应用。

版本:CentOS Linux release 7.9.2009。

1.for循环常用格式

1.1格式:for(;;)

  1. for((expression1; expression2; expression3))
  2. do
  3. command1
  4. command2
  5. ...
  6. commandN
  7. done

1.2格式:for in

  1. for item in item1 item2 ... itemN
  2. do
  3. command1
  4. command2
  5. ...
  6. commandN
  7. done

2.使用for(;;)遍历数组

2.1脚本

脚本名称:b2023051801.sh

脚本内容:

  1. #!/bin/bash
  2. #1.定义数组
  3. cityArray=("上海" "苏州" "杭州")
  4. #2.获取数组长度
  5. lenth=${#cityArray[@]}
  6. #3.使用for循环遍历数组
  7. for ((i=0; i<lenth; i++))
  8. do
  9. echo "第$((i+1))个城市名称: ${cityArray[i]}"
  10. done

2.2执行与输出

执行命令:bash b2023051705.sh

执行结果:

  1. 第1个城市名称: 上海
  2. 第2个城市名称: 苏州
  3. 第3个城市名称: 杭州

3.使用for in遍历数组(使用@字符)

3.1脚本

脚本名称:b2023051802.sh

脚本内容:

  1. #!/bin/bash
  2. #1.定义数组
  3. cityArray=("上海" "苏州" "杭州")
  4. #2.使用for循环遍历数组
  5. for item in ${cityArray[@]}
  6. do
  7. echo "城市名称: ${item}"
  8. done

3.2执行与输出

执行命令:bash b2023051802.sh

执行结果:

  1. 第1个城市名称: 上海
  2. 第2个城市名称: 苏州
  3. 第3个城市名称: 杭州

4.使用for in遍历数组(使用*字符)

4.1脚本

脚本名称:b2023051803.sh

脚本内容:

  1. #!/bin/bash
  2. #1.定义数组
  3. cityArray=("上海" "苏州" "杭州")
  4. #2.使用for循环遍历数组
  5. for item in ${cityArray[*]}
  6. do
  7. echo "城市名称: ${item}"
  8. done

4.2执行与输出

执行命令:bash b2023051803.sh

执行结果:

  1. 第1个城市名称: 上海
  2. 第2个城市名称: 苏州
  3. 第3个城市名称: 杭州

5.使用for in遍历字符串(字符串之间带空格)

5.1脚本

脚本名称:b2023051804.sh

脚本内容:

  1. #!/bin/bash
  2. #1.使用for循环遍历字符串,字符串间带空格
  3. for item in "杭州" "苏州" "上海"
  4. do
  5. echo "城市名称: ${item}"
  6. done

5.2执行与输出

执行命令:bash b2023051804.sh

执行结果:

  1. 城市名称: 杭州
  2. 城市名称: 苏州
  3. 城市名称: 上海

6.使用for in遍历数字(数字之间带空格)

6.1脚本

脚本名称:b2023051805.sh

脚本内容:

  1. #!/bin/bash
  2. #1.使用for循环遍历数字,数字间带空格
  3. for item in 1024 2048 4096
  4. do
  5. echo "数字: ${item}"
  6. done

6.2执行与输出

执行命令:bash b2023051805.sh

执行结果:

  1. 数字: 1024
  2. 数字: 2048
  3. 数字: 4096

7.使用for in遍历数字范围(两个数字之间值包括本身)

7.1脚本

脚本名称:b2023051806.sh

脚本内容:

  1. #!/bin/bash
  2. #1.使用for循环遍历数字,两个数字之间的值
  3. for item in {112..118}
  4. do
  5. echo "数字: ${item}"
  6. done

7.2执行与输出

执行命令:bash b2023051806.sh

执行结果:

  1. 数字: 112
  2. 数字: 113
  3. 数字: 114
  4. 数字: 115
  5. 数字: 116
  6. 数字: 117
  7. 数字: 118

8.使用for in遍历字符范围(两个字符串之间值包括本身)

8.1脚本

脚本名称:b2023051807.sh

脚本内容:

  1. #!/bin/bash
  2. #1.使用for循环遍历字符,两个字符之间的值
  3. for item in {A..b}
  4. do
  5. printf "%c" ${item}
  6. done

8.2执行与输出

执行命令:bash b2023051807.sh

执行结果:

ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`ab

9.使用for in遍历命令执行结果(使用$()方式)

9.1脚本

脚本名称:b2023051808.sh

脚本内容:

  1. #!/bin/bash
  2. #1.使用for循环遍历命令执行结果
  3. for item in $(cat province.txt)
  4. do
  5. echo "${item}"
  6. done

9.2执行与输出

执行命令:bash b2023051808.sh

执行结果:

  1. 长三角省份有浙江、江苏等。
  2. 长三角最大都市是上海。
  3. 长三角经济发达。

10.使用for in遍历命令执行结果(使用``方式)

10.1脚本

脚本名称:b2023051809.sh

脚本内容:

  1. #!/bin/bash
  2. #1.使用for循环遍历命令执行结果
  3. for item in `cat province.txt`
  4. do
  5. echo "${item}"
  6. done

10.2执行与输出

执行命令:bash b2023051809.sh

执行结果:

  1. 长三角省份有浙江、江苏等。
  2. 长三角最大都市是上海。
  3. 长三角经济发达。

11.使用for in遍历文件列表(使用``方式)

11.1脚本

脚本名称:b2023051810.sh

脚本内容:

  1. #!/bin/bash
  2. #1.使用for循环遍历命令执行结果
  3. for item in `ls *.sh`
  4. do
  5. echo "${item}"
  6. done

11.2执行与输出

执行命令:bash b2023051810.sh

执行结果:

  1. b2023051801.sh
  2. b2023051802.sh
  3. b2023051803.sh
  4. b2023051804.sh
  5. b2023051805.sh
  6. b2023051806.sh
  7. b2023051807.sh
  8. b2023051808.sh
  9. b2023051809.sh
  10. b2023051810.sh

12.使用for in遍历通配符匹配结果

12.1脚本

脚本名称:b2023051811.sh

脚本内容:

  1. #!/bin/bash
  2. #1.使用for循环遍历通配符执行结果
  3. for item in *.sh
  4. do
  5. echo "${item}"
  6. done

12.2执行与输出

执行命令:bash b2023051811.sh

执行结果:

  1. b2023051801.sh
  2. b2023051802.sh
  3. b2023051803.sh
  4. b2023051804.sh
  5. b2023051805.sh
  6. b2023051806.sh
  7. b2023051807.sh
  8. b2023051808.sh
  9. b2023051809.sh
  10. b2023051810.sh
  11. b2023051811.sh

13.使用for in遍历特殊变量($*和$@)

13.1脚本

脚本名称:b2023051812.sh

脚本内容:

  1. #!/bin/bash
  2. #1.使用for循环遍历$@
  3. function f1(){
  4. for item in $@
  5. do
  6. echo "${item}"
  7. done
  8. }
  9. #2.使用for循环遍历$*
  10. function f2(){
  11. for item in $*
  12. do
  13. echo "${item}"
  14. done
  15. }
  16. echo '1.遍历$@执行结果'
  17. f1 "杭州" "苏州" "上海"
  18. echo '2.遍历$*执行结果'
  19. f2 "Hangzhou" "Suzhou" "Shanghai"

13.2执行与输出

执行命令:bash b2023051812.sh

执行结果:

  1. 1.遍历$@执行结果
  2. 杭州
  3. 苏州
  4. 上海
  5. 2.遍历$*执行结果
  6. Hangzhou
  7. Suzhou
  8. Shanghai

14.使用for in遍历特殊变量(省略特殊字符)

14.1脚本

脚本名称:b2023051813.sh

脚本内容:

  1. #!/bin/bash
  2. #1.使用for循环遍历省略特殊变量
  3. function f1(){
  4. for item
  5. do
  6. echo "${item}"
  7. done
  8. }

14.2执行与输出

执行命令:bash b2023051813.sh

执行结果:

  1. 1.遍历省略特殊变量执行结果
  2. 杭州
  3. 苏州
  4. 上海

15.使用for in查找指定目录下文件

15.1脚本

脚本名称:b2023051814.sh

脚本内容:

  1. #!/bin/bash
  2. #1.获取当前目录路径
  3. dirPath=`pwd`
  4. #2.查找当前目录的下一级目录名称
  5. for dirName in `find . -maxdepth 1 -type d -name "tutorial*"`
  6. do
  7. result=$(echo "${dirName}" | grep "tutorial-2023")
  8. if [[ "${result}" != "" ]];then
  9. echo "目录名称: ${result}"
  10. fi
  11. done

15.2执行与输出

执行命令:bash b2023051814.sh

执行结果:

  1. 目录名称: ./tutorial-20230517
  2. 目录名称: ./tutorial-20230518

以上,感谢。

2023年5月18日

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/304543
推荐阅读
相关标签
  

闽ICP备14008679号