`
tomotoboy
  • 浏览: 162415 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

控制流结构——for

阅读更多
for循环
for 变量名 in 列表
do
       命令 1
       命令 2
done
当变量值在列表里,for循环即执行一次所有命令,使用变量名访问列表中取值。命令可为任何有效的shell命令和语句。变量名为任何单词。in列表用法是可选的,如果不用它, for循环使用命令行的位置参数。in列表可以包含替换、字符串和文件名,下面看一些例子。
/home/l/g/tomotoboy/for >cat fortest
#!/bin/sh
#for_i
for loop in 1 2 3 4 5 6
do
    echo $loop
done

#forlist
for loop in "orange red blue grey"
do
   echo $loop
done

#forls
for loop in `ls`
do
     echo $loop
done


#forparam
for params
do
     echo "you supplied $params as command line option"
     echo $params
done

for params in "$@"
do
     echo "you supplied $params as command line option"
     echo $params
done

#forcommand
for loop
do
      find `pwd` -name $loop -print
done


/home/l/g/tomotoboy/for >fortest fortest
1
2
3
4
5
6
orange red blue grey
fortest
you supplied fortest as command line option
fortest
you supplied fortest as command line option
fortest


使用for循环连接服务器
因为for循环可以处理列表中的取值,现设变量为网络服务器名称,并使用for循环连接每一服务器。
#!/bin/sh
#forping
HOSTS="sina.com cqu.edu.cn baidu.com"
for loop in $HOSTS
do
     ping -c 2 $loop
done
多文件转换
匹配所有以.sed结尾文件并将其转换为大写。这里使用了 l s和cat命令。l s用于查询出相关文件,cat用于将之管道输出至trr命令。目标文件扩展名为.UC,注意在for循环中使用l s命令时反引号的用法。
#!/bin/sh
#forstr
for files in `ls *.sed`
do
    cat $files |tr "[a-z]"  "[A-Z]" >$files.UC
done

/home/l/g/tomotoboy >cat change.sed
#!/bin/sed -f
#change.sed
/tomotoboy/ c\
I love China,Ilove Wanzhi.
/home/l/g/tomotoboy >ls *.UC
append.sed.UC  change.sed.UC
/home/l/g/tomotoboy >cat change.sed.UC
#!/BIN/SED -F
#CHANGE.SED
/TOMOTOBOY/ C\
I LOVE CHINA,ILOVE WANZHI.


多sed删除操作
下面的例子中,sed用于删除所有空文件,并将输出导至以 . HOLD.为扩展名的新文件,mv将这些文件移至初始文件中。
#!/bin/sh
#forsed
for files in `ls *.sed`
do
   sed -e "/^$/d" $files > $files.HOLD
   mv $files.HOLD $files
done


循环计数
前面讨论expr时指出,循环时如果要加入计数,使用此命令。下面使用 l s在for循环中列出文件及其数目。
/home/l/g/tomotoboy >cat forcount
#!/bin/sh
#forcount
count=0
for files in *
do
  count=`expr $count + 1`
done
echo "There are $count files in `pwd` we need to process"


分享到:
评论

相关推荐

    C#全能速查宝典

    1.4.7 DateTime结构——表示时间上的一刻 50 1.4.8 DAY函数——返回日期部分的整数 51 1.4.9 DayOfWeek属性——获取星期几 52 1.4.10 Equals方法——比较两个字符串对象 53 1.4.11 First函数——返回查询结果的第一...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    *3.4.2 在输入流与输出流中使用控制符 3.4.3 用getchar和putchar函数进行字符的输入和输出 3.4.4 用scanf和printf函数进行输入和输出 3.5 编写顺序结构的程序 3.6 关系运算和逻辑运算 3.6.1 关系运算和关系表达式 ...

    C程序设计语言_第2版(带书签目录)

    第三章 流控制 3.1 语句与程序块 3.2 if-else语句 3.3 else-if语句 3.4 switch语句 3.5 while循环与for循环 3.6 do-while循环 3.7 break语句与continue语句 3.8 goto语句与标号 第四章 函数与程序结构 4.1...

    C程序设计语言第2版新版[PDF]

    全面、系统地讲述了C语言的各个特性及程序设计的基本方法,包括基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口、标准库等内容。  本书的讲述深入浅出,配合典型例证...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar )

    *3.4.2 在输入流与输出流中使用控制符 3.4.3 用getchar和putchar函数进行字符的输入和输出 3.4.4 用scanf和printf函数进行输入和输出 3.5 编写顺序结构的程序 3.6 关系运算和逻辑运算 3.6.1 关系运算和关系表达式 ...

    Linux C程序设计大全

    第1篇 Linux下C语言基础 第1章 Linux简介 1.1 GNU简介 1.2 Linux简介 1.2.1 Linux发展史 1.2.2 Linux发行版 1.2.3 Linux内核版本 1.2.4 Linux与UNIX的关系 1.2.5 Linux在服务器方面...第28章 shell脚本中的控制结构 844

    《C程序设计语言》(非扫描.新版)

    第3章 控制流 3.1 语句与程序块 3.2 if-else语句 3.3 else-if语句 3.4 switch语句 3.5 whil循环与for特环 3.6 do-while循环 3.7break语句与continue语句 3.8goto语句与标号 第4章 函数与程序结构 第5章 指针与数组 ...

    C程序设计语言

    第3章 控制流 3.1 语句与程序块 3.2 if-else语句 3.3 else-if语句 3.4 switch语句 3.5 whil循环与for特环 3.6 do-while循环 3.7 break语句与continue语句 3.8 goto语句与标号 第4章 涵数与程序结构 第5章 指针与数组...

    Java典型模块

    20.3 知识点扩展——过滤流的基础知识 20.3.1 过滤流的缓存(Buffering)类 20.3.2 过滤流实现字节和字符相互转换类 20.3.3 过滤流特定数据类型类 20.3.4 过滤流对象序列化类 20.3.5 过滤流打印类 20.4 小结 第21章 ...

    Graph Matching Networks for Learning the Similarity of Graph Structured Objects

    研究者证明 GMN 模型在不同领域中的有效性,包括极具挑战性的基于控制流图的函数相似性搜索问题,这个问题在检索软件系统的漏洞中起着非常重要的作用。实验分析表明 GMN 模型不止能在相似性学习的环境下利用结构,还...

    C++编程思想——很实用的一本书

    全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流介绍、常量、内联函数、命名控制、引用和拷贝构造函数、运算符重载、 动态对象创建、继承和组合、多态和虚...

    C程序设计语言[第2版].pdf

    全面、系统地讲述了C语言的各个特性及程序设计的基本方法,包括基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口、标准库等内容。 本书的讲述深入浅出,配合典型例证...

    C程序设计语言(第2版·新版中文)

    全面、系统地讲述了C语言的各个特性及程序设计的基本方法,包括基本概念,类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口、标准库等内容。 目录   出版者的话 专家指导委员...

    python简明教程.chm

    6. 控制流 简介 if语句 使用if语句 它如何工作 while语句 使用while语句 for循环 使用for语句 break语句 使用break语句 continue语句 使用continue语句 概括 7. 函数 简介 定义函数 函数...

    简明python教程(chm)

    6. 控制流 简介 if语句 使用if语句 它如何工作 while语句 使用while语句 for循环 使用for语句 break语句 使用break语句 continue语句 使用continue语句 概括 7. 函数 简介 定义函数 函数...

    简明python教程

    6. 控制流 简介 if语句 使用if语句 它如何工作 while语句 使用while语句 for循环 使用for语句 break语句 使用break语句 continue语句 使用continue语句 概括 7. 函数 简介 定义函数 函数形参 使用...

    leetcode分类-python-for-data-analysis:用于数据分析的python

    基础知识(控制流), 数据结构和序列(元组、列表、字典、集合) 3 职能 四 作业 #1 NumPy 基础 —— 五 使用 Pandas 进行主要数据分析Pandas 数据类型:Series、DataFrame、Index 6 作业#2 —— 7 数据可视化...

Global site tag (gtag.js) - Google Analytics