for循环

基本示例

  1. for i in var1 var2 var2
  2. do
  3. echo $i
  4. done
  5. for i in {1..100}
  6. do
  7. echo $i
  8. done

列表中复杂值,可以使用引号或者转义字符来约束

  1. # 双引号
  2. for i in var1 "var2 var2" var4 "var5 var6"
  3. do
  4. echo $i
  5. done
  6. 输出:
  7. var1
  8. var2 var2
  9. var4
  10. var5 var6
  11. # 转义符
  12. for var in var1 var2\'2 a\'b
  13. do
  14. echo $var
  15. done
  16. 输出:
  17. var1
  18. var2'2
  19. a'b
  20. for var in var1 "var2\'2 a\'b"
  21. do
  22. echo $var
  23. done
  24. 输出:
  25. var1
  26. var2\'2 a\'b

从变量中取值

  1. list="a b c"
  2. for i in $list
  3. do
  4. echo $i
  5. done
  6. 输出:a b c

从命令中取值

  1. for i in `cat /etc/hosts`
  2. do
  3. echo $i
  4. done
  5. 输出:
  6. ##
  7. #
  8. Host
  9. Database
  10. #
  11. #
  12. localhost
  13. is
  14. used
  15. to
  16. configure

自定义分隔符

for循环,默认情况下以空格为分隔符,可以通过IFS来自定义分隔符

  • 以冒号为分隔符 IFS=:
  • 以冒号分号双引号为分割符 IFS=:;"
  • 以换行符为分隔符 IFS=$'\n'
  1. IFS=$'\n'
  2. for i in `cat /etc/hosts`
  3. do
  4. echo $i
  5. done
  6. 输出:
  7. ##
  8. # Host Database
  9. #
  10. # localhost is used to configure the loopback interface
  11. # when the system is booting. Do not change this entry.
  12. ##
  13. 127.0.0.1 localhost
  14. 255.255.255.255 broadcasthost
  15. ::1 localhost

C语言风格的for

  1. for ((i=0; i<10; i++))
  2. do
  3. echo $i
  4. done
  5. 输出:
  6. 0
  7. 1
  8. 2
  9. 3
  10. 4
  11. 5
  12. 6
  13. 7
  14. 8
  15. 9

练习题

  1. for循环10次,输出两个数字之和
  2. 示例:
  3. num is 1 9
  4. num is 2 8
  5. num is 3 7
  6. num is 4 6
  7. num is 5 5
  8. num is 6 4
  9. num is 7 3
  10. num is 8 2
  11. 解:
  12. # 第一种解法
  13. for (( a=1, b=9; a<9; a++, b-- ))
  14. do
  15. echo num is $a $b
  16. done
  17. # 第二种解法
  18. a=0
  19. b=10
  20. for i in {1..9}
  21. do
  22. let a++
  23. let b--
  24. echo num is $a $b
  25. done
  26. # 如果需要求和
  27. for (( a=1, b=9; a<9; a++, b-- ))
  28. do
  29. sum=$(( $a + $b ))
  30. echo num is $a + $b = $sum
  31. done

shell (二) shell for循环的更多相关文章

  1. shell编程基础(二): shell脚本语法之分支语句和循环语句

    一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...

  2. shell脚本程序中循环、判断语句的介绍

    shell的循环主要有3种,for,while,until shell的分支判断主要有2种,if,case 一,for循环 C/C++ Code复制内容到剪贴板 #!/bin/bash for fil ...

  3. shell脚本之for循环

    shell脚本之for循环 author :headsen  chen       2017-10-18    09:50:41 个人原创,转载请注明.否则依法追究法律责任 1,cat forloop ...

  4. shell 脚本中所有循环语法

    写出 shell 脚本中所有循环语法 for 循环 : for i in $(ls);do echo item:$i done while 循环 : #!/bin/bash COUNTER=0 whi ...

  5. centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课

    centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   ...

  6. shell脚本中select循环语句用法

    shell脚本中select循环语句 1. 脚本中select的语法格式 select VAR in LIST do command1 command2 ... ... commandN done s ...

  7. MongoDB学习笔记二—Shell操作

    数据类型 MongoDB在保留JSON基本键/值对特性的基础上,添加了其他一些数据类型. null null用于表示空值或者不存在的字段:{“x”:null} 布尔型 布尔类型有两个值true和fal ...

  8. spark教程(二)-shell操作

    spark 支持 shell 操作 shell 主要用于调试,所以简单介绍用法即可 支持多种语言的 shell 包括 scala shell.python shell.R shell.SQL shel ...

  9. 转:shell 经典, shell 十三问

      原文链接:http://blog.csdn.net/freexploit/article/details/626660 我在 CU 的日子并不长,有幸在 shell 版上与大家结缘.除了跟众前辈学 ...

随机推荐

  1. 【leetcode-200 深度优先+广度优先】 岛屿数量

    给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的.你可以假设网格的四个边均被水包围. 示例 1: 输入: ...

  2. [转] linux 查找文本过滤grep正则表达式命令详解用法

    grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用 ...

  3. php 获取文件下的所有文件。php 获取文件下的所有子文件。php 递归获取文件下的所有文件。封装好的方法

    //php 获取文件下的所有文件.php 获取文件下的所有子文件.php 递归获取文件下的所有文件.直接上封装好的php代码 <?php //文件路径 $dir = dirname(__FILE ...

  4. Flask模板渲染

    目录 Flask模板渲染 Jinja2模板引擎简介 模板 Jinja2 模板变量 变量 控制结构 宏,类似Python代码中的函数 模板继承 包含(Include) 过滤器 链式调用 常见内建过滤器 ...

  5. 架构师小跟班:推荐46个非常经典的Linux面试题

    大家都知道,做后端开发,做着做着就变成全栈了.一般服务器维护应该是运维的事情,但很多很多公司都是后端工程师在做.所以,基本的Linux系统维护也是后端工程师的必修课.问题一: 绝对路径用什么符号表示? ...

  6. Vue-cli构建spa应用

    2.1 VUE-cli构建spa应用 npm install -g vue-cli Vue init webpack-simple demo vue init webpack demo2 如果在项目目 ...

  7. AHB总线协议(二)

    下图是8拍回环字突发传输:地址将在 32 字节边界处回环因此地址 0x3C 之后的地址是 0x20. 下图是8增量半字突发传输,所以地址每次增加 2 个字节并且突发在递增因此地址连续增加通过了 16 ...

  8. iOS 原生推送(APNS)的实现

    1.前期准备工作 创建你的APNs keys 或者 创建推送证书,这两个创建一个即可实现推送.这两个创建一个即可实现推送.这两个创建一个即可实现推送.重要的事情说三遍,我看评论区有小伙伴误解. 1.  ...

  9. 2 Linux磁盘管理

    Linux磁盘管理:磁盘管理好坏直接关系到整个系统的性能问题常用三个命令:df.du.fdiskdf:列出文件系统的整体磁盘使用量 df 参数 目录或文件名 -a:理出所有文件系统,包括系统特有的 / ...

  10. win中Oracle简易客户端和plsql的配置

    连接数据库有2种方式:在本机安装Oracle数据库或者是安装一个oracle简易客户端 当然,简易客户端跟oracle数据库比较少了一些功能 连接方式: 1)简易连接 sqlplus scott/ti ...