for语法格式:

for 变量 in 参数列表
do
命令
done 或者
for 变量 in 参数列表 ; do
命令
done

  for语句流程控制图:

  实例:

[root@youxi1 ~]# vim a.sh
#!/bin/bash
for var in a1 a2 b1 b2
do
echo $var
done
[root@youxi1 ~]# sh a.sh
a1
a2
b1
b2

  参数列表可以更复杂些,部分特殊符号需要转义

[root@youxi1 ~]# vim b.sh
#!/bin/bash
for var in I\'m "hello world" "c1 c2 d1 d2"
do
echo $var
done
[root@youxi1 ~]# sh b.sh
I'm
hello world
c1 c2 d1 d2

  参数列表还可以从变量中读取,可以是多个变量

[root@youxi1 ~]# vim c.sh
#!/bin/bash
list="e1 e2 f1 f2"
list2="hello world"
for var in $list $list2
do
echo $var
done
[root@youxi1 ~]# sh c.sh
e1
e2
f1
f2
hello
world

  参数列表还可以从命令中取值

[root@youxi1 ~]# vim d.sh
#!/bin/bash
for var in `head -5 /etc/passwd`
do
echo $var
done
[root@youxi1 ~]# sh d.sh
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

(1).扩展1:自定义shell分隔符

自定义Shell分隔符

(2).扩展2:C语言风格的for循环

  C语言风格的for语法格式:

for ((变量赋值;条件判断;一次循环完成后执行的操作))
do
命令
done

  注意:变量赋值可以放在for循环外部定义,一次循环完成后执行的操作可以放在循环里面。

  实例如下:

[root@youxi1 ~]# vim a.sh
#!/bin/bash
i=0
for ((;i<=10;)) ; do
echo "Num is $i"
let i++
done
[root@youxi1 ~]# sh a.sh
Num is 0
Num is 1
Num is 2
Num is 3
Num is 4
Num is 5
Num is 6
Num is 7
Num is 8
Num is 9
Num is 10

  另外变量赋值和一次循环完成后执行的操作,这两部分可以存在多个变量操作,实例如下:

[root@youxi1 ~]# vim a.sh
#!/bin/bash
for ((a=0,b=5;a<=10;a++,b--)) ; do
echo "a-b="$[a-b]
done
[root@youxi1 ~]# sh a.sh
a-b=-5
a-b=-3
a-b=-1
a-b=1
a-b=3
a-b=5
a-b=7
a-b=9
a-b=11
a-b=13
a-b=15

(3).扩展:seq命令

  seq命令获取两个数以及之间的所有整数

[root@youxi1 ~]# vim a.sh
#!/bin/bash
for i in `seq -5 5` ; do
echo $i
done
[root@youxi1 ~]# sh a.sh
-5
-4
-3
-2
-1
0
1
2
3
4
5

  

Shell流程控制语句for的更多相关文章

  1. Linux Shell 流程控制语句

    * 本文主要介绍一些Linux Shell 常用的流程控制语句* 1. if 条件语句:if-then/if-elif-fi/if- else-fi if [条件判断逻辑1];then command ...

  2. shell流程控制语句

    linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while,until),选择语句(case/select).下面我将通过例子介绍下,各个语句使用方法. 1 ...

  3. 5.Shell 流程控制语句

    1.流程控制语句 通过if.for.while.case这4种流程控制语句来学习编写难度更大.功能更强的Shell脚本 4.3.1 if条件测试语句: if条件测试语句可以让脚本根据实际情况自动执行相 ...

  4. Linux | Shell流程控制语句

    流程控制语句 简单的Shell 脚本还不能满足我们日常工作的需要要,因为他不能批量的帮我们完成工作,所以Shell引入了 if.for.while.case 4种流程控制语句来帮助我们完成工作. if ...

  5. shell 流程控制语句

    case语句 case $变量名 in "值1")   如果变量的值等于值1,则执行程序1 ;;  "值2")   如果变量的值等于值2,则执行程序2 ;;   ...

  6. Shell流程控制语句while

    while语法格式: while 判断条件 do 命令 done while语句流程控制图: 实例: [root@youxi1 ~]# vim a.sh #!/bin/bash i=0 while [ ...

  7. Shell流程控制语句case

    case语法格式: case 变量或表达式 in 变量或表达式1) 命令1 ;; 变量或表达式2) 命令2 ;; ...... *) 默认命令 esac case语句流程控制图:  实例: [root ...

  8. Shell流程控制语句if

    (1).if语句 语法格式: if 判断条件 ; then 命令 fi 或 if 判断条件 then 命令 fi if语句流程图: 实例:判断命令是否执行成功,成功则输出语句This is ok. [ ...

  9. linux shell awk 流程控制语句(if,for,while,do)详细介绍

    在linux awk的 while.do-while和for语句中允许使用break,continue语句来控制流程走向,也允许使用exit这样的语句来退出.break中断当前正在执行的循环并跳到循环 ...

随机推荐

  1. Django的Form另类实现SelectMultiple

    昨天花了一天才解决,遇到的问题如下: 在forms.py里有一个如下的字段: jira_issue = forms.CharField( required=False, label=u"Ji ...

  2. HDU - 5571 :tree (动态点分治 异或)

    题意:给定一棵树,有点权a[],有边权. 现在有M次修改点权的操作,输出每次修改后,Σ(a[i]^a[j])*dis(i,j); 思路:因为待修改,我们需要快速得到以及修改一个点到其他所有点的信息. ...

  3. 浏览器-同源政策(same-origin policy)

    浏览器安全的基石是“同源政策”(same-origin policy). 1995年,同源政策由 Netscape 公司引入浏览器.目前,所有浏览器都实行这个政策. 何为同源? 协议相同 域名相同 端 ...

  4. PHP——数组根据某一键值合并

    前言 其实要实现很简单直接foreach,再根据PHP中数组的特性就可以轻松实现. 步骤 这是源数据的格式 $info = [ [ "gname" => "特别关心 ...

  5. mongodb 简单使用说明

    首先安装  mongodb软件地址 https://www.mongodb.org/downloads#production: 然后在 mongodb安装目录下找到bin 文件夹进去 在它的位置上按下 ...

  6. 项目集成Spring Security

    前言 之前写的 涂涂影院管理系统 这个 demo 是基于 shiro 来鉴权的,项目前后端分离后,显然集成 Spring Security 更加方便一些,毕竟,都用 Spring 了,权限管理当然 S ...

  7. IDEA-相关插件使用

    IDEA日常开发中,整理一些用到的插件,以便后续使用起来方便. 点击File-Settings->Plugins. 1.进度条-彩虹,搜索Nyan字样,如图所示(本人已安装),点击Install ...

  8. 洛谷 P3958 奶酪 题解

    思路: 先看哪两个点能互通,再广搜寻找下一步,如果到达高度h就输出Yes,如果所有路径都找过都不能到达高度h就输出No. #include<bits/stdc++.h> using nam ...

  9. ssh集成

    导入pom依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...

  10. pgloader 学习(五)pgloader 参考手册

    pgloader将各种来源的数据加载到PostgreSQL中.它可以转换动态读取的数据,并在加载前后提交原始SQL. 它使用COPY PostgreSQL协议将数据流式传输到服务器,并通过填充一对re ...