`
tomotoboy
  • 浏览: 166847 次
  • 性别: 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"


分享到:
评论

相关推荐

    第4次实验(控制流1)——分支程序设计.doc

    实验题目“第4次实验(控制流1)——分支程序设计”主要涵盖了计算机程序设计中的核心概念,包括控制流、逻辑表达式、关系表达式以及分支和循环结构。这些是编程语言的基础,对于任何程序员来说都至关重要。 首先,...

    编译原理——for循环语句的翻译,LR,四元式

    在编译原理中,我们经常会遇到各种控制流程语句,其中for循环语句是程序设计中最为常见的一种。...在实际的编译器设计中,这两个工具的结合使用使得编译器能够正确地理解和转换各种编程语言的控制流语句。

    揭秘控制流的秘密:Java中的if, for, while

    本文将深入解析Java中的三种核心控制流语句——if、for、while及其变体,并通过具体的实例帮助读者更好地理解和运用这些语句。 #### 第一章:if语句的精妙 **1.1 基础语法与应用** if语句是最基本的条件判断语句...

    数据结构与程序设计——C++语言描述(源代码)(1~6)

    在C++中,我们可以使用控制流语句(如if、for、while)、函数和类来编写算法。例如,排序算法有冒泡排序、插入排序、快速排序等多种,每种都有其特定的效率和适用场景。搜索算法包括线性搜索、二分搜索等,它们在...

    IOS应用源码——TwitterFeed for iOS.rar

    【iOS应用源码——TwitterFeed for iOS】 这个压缩包文件包含的是一个名为"TwitterFeed for iOS"的iOS应用的源代码。此应用很可能是用来展示和处理Twitter的实时信息流,让用户可以在iOS设备上查看和交互与Twitter...

    数据结构课程设计——运动会分数统计 C++

    数据结构课程设计——运动会分数统计 C++ 在本次课程设计中,我们需要实现一个基于C++的运动会分数统计系统。系统的核心是有效地存储和处理比赛数据,包括学校信息、比赛项目及成绩,然后根据这些数据进行各种统计...

    程序设计基础课件————c语言教程课件

    例如,条件语句如if和switch能够根据不同的条件来执行不同的代码块,而循环结构如while和for则使程序能够在满足特定条件下重复执行一段代码。 函数在C语言中的重要性不容忽视,第7章将向学生展示如何定义和调用函数...

    安卓Android源码——ipcamera-for-android 手机变成IP Camera.zip

    "安卓Android源码——ipcamera-for-android 手机变成IP Camera" 这个标题揭示了我们正在探讨一个特殊的Android项目,它的主要功能是将Android智能手机转化为网络摄像头,即IP Camera。IP Camera是指能够通过网络进行...

    一种支持SIMD体系结构的高效分布式堆栈——HEDSSA.pdf

    为了解决这一问题,文中提出了高效分布式堆栈设计方法——HEDSSA(High Efficient Distributed Stack for SIMD Architecture)。HEDSSA的设计充分考虑了SIMD体系结构的特点,并通过分布式设计提高了对局部数据的访问...

    java基础——————试题库

    4. **控制结构** - 条件语句:if, if-else, switch-case。 - 循环:for, while, do-while循环,以及break和continue语句。 - 分支结构:三元运算符(condition ? expr1 : expr2)。 5. **方法(函数)** - 方法...

    Swift教程:控制流 控制转移语句-break

    在Swift编程语言中,控制流是程序执行顺序的关键部分,它决定了代码如何根据条件和循环进行执行。控制转移语句则是改变程序正常流程的一种手段,它们允许你在特定条件下提前结束循环或者跳出多重嵌套结构。本教程将...

    深入机器学习——Towards a Deep Learning Compiler for the Cloud 共24页.pdf

    本文档《深入机器学习——Towards a Deep Learning Compiler for the Cloud 共24页.pdf》探讨了一个面向云环境的深度学习编译器的概念和技术细节。文档通过介绍百度的PaddlePaddle深度学习框架的发展历程及其在构建...

    验证“哥德巴赫猜想”——C语言代码

    **哥德巴赫猜想**是...此代码示例提供了一个简单的学习机会,可以帮助初学者理解C语言的基本结构、控制流以及如何实现数学逻辑。然而,实际验证哥德巴赫猜想需要更大的计算能力,可能涉及到更复杂的算法和数据结构。

    揭密代码结构

    本书附录一《揭密代码结构》旨在揭示高级语言中常见的逻辑控制流结构及其在IA-32汇编语言中的具体实现方式。这部分内容对于从事逆向工程的人来说极为重要,因为它提供了一种识别和理解在逆向过程中遇到的典型汇编...

    最简单的九九乘法表(csdn)————程序.pdf

    标题中的“最简单的九九乘法表(csdn)——程序”指的是一个使用编程语言实现的九九乘法表,通常这种程序是为了教学目的而编写的,帮助初学者理解循环和控制流的基本概念。在这个例子中,我们看到的代码是用C语言...

    linux c编程————精华版

    - **控制结构**:讲解条件语句(if-else)、循环语句(for、while)等控制结构的应用。 - **函数与模块化编程**:强调函数的设计与实现,以及如何通过模块化提升代码的可维护性和重用性。 - **指针与内存管理**:...

    forth 程序设计打包

    通过阅读和运行这些例子,你可以学习如何定义词汇、如何进行控制流(如条件语句和循环)、如何处理数据结构以及如何与外部硬件交互。 总的来说,Forth是一种独特而强大的编程语言,尽管它可能不如其他现代语言那么...

    Java图书管理系统(IO流版)(csdn)————程序.pdf

    * 掌握Java的基本语法,包括变量、数据类型、运算符、控制结构、方法、数组等。 * 熟悉使用Java的基本数据类型,例如int、double、String等。 * 了解Java的运算符优先级和associativity。 二、流程控制 * 理解Java...

    python —— car-board-game项目

    在这个项目中,我们首先会接触到控制流结构,如条件语句(if-else)和循环(for、while),这些是程序的基础,用于决定游戏的规则和进程。例如,游戏可能会检查玩家的输入是否有效,或者在满足特定条件时改变游戏...

Global site tag (gtag.js) - Google Analytics