`
dengwenwei121
  • 浏览: 40896 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论

Shell脚本之循环

 
阅读更多

Shell中有3中循环,分别是for,while,untiluntilwhile正好相反,前者条件为假则执行,后者条件为真时执行。基本和C语言中额循环没什么区别。只是语法上有些差异。



for循环

格式:

for var in word1 word2 ……

in

command

command

……

done



谈到循环,就不得不说$@变量,它代表该shell脚本的所有参数。所以,要写一个命令行中键入的所有参数的程序就应该向下面这样:

for arg in "$@"

do

echo $arg

done

说到$@就不得不说for循环的另一种形式,就是缺省参数

for var

in

command

command

……

done

上面的程序等价于:

for var in "$@"

in

command

command

……

done


下面的代码中,变量i在每次迭代的过程里都会保存一个字符,范围从a到z:

for i in {a..z}; do actions; done;

for 循环也可以采用C语言中的for循环格式。例如:

for (( i=0; i<10; i++))

{

commands;

}


until
循环

until很简单,只要记住它与while正好相反即可,即条件为假继续执行,条件为真,就跳出循环。



while循环

我们知道shell中的if语句结束标识是fi,与c语言相差很大。既然我们已经知道了for循环的形式,那while也就不难了,因为shell不能与它自己差别很大的。

while command1

do

command

command

……

done

示例:

1数到5的小程序

i=1

while[ "$i" -le 5 ]

do

echo$i

i=$((i + 1 ))

done

正如for循环中,我们穿插介绍了$@一样,讲到while循环,可以顺便介绍一下shift,因为while循环经常跟shift结合使用。shift命令使位置变量下移,即使得$1=$2,$2=$3,最后$#还要减少1,也就是说把第一个参数删除了,而且找不回来了。如果我们要写一个打印所有参数的程序,就因该向这样的:

while[ "$#" -ne 0 ]

do

echo"$1"

shift

done


breakcontinue

说到循环,肯定不能漏掉break和,continue,它们的作用和在C语言中一模一样,完。


Example

下面是一个综合的示例,用于打印从命令行输入的参数。

  1. #case1
  2. k=1
  3. echo"Case$k:"
  4. j=0
  5. foriin"$@"
  6. do
  7. j=$(($j+1))
  8. echo-e"$j\c"
  9. echo$i
  10. done
  11. #case2
  12. k=$(($k+1))
  13. echo
  14. echo"Case$k:"
  15. j=0
  16. fori
  17. do
  18. j=$(($j+1))
  19. echo-e"$j\c"
  20. echo$i
  21. done
  22. #case3
  23. #testcontinue
  24. k=$(($k+1))
  25. echo
  26. echo"Case$k:"
  27. j=0
  28. while[$j-lt$#]
  29. do
  30. j=$(($j+1))
  31. if[$j-eq3]
  32. then
  33. continue
  34. fi
  35. echo-e"$j\c"
  36. evalecho"\$$j"
  37. done
  38. #case4
  39. k=$(($k+1))
  40. echo
  41. echo"Case$k:"
  42. j=0
  43. until[$j-eq$#]
  44. do
  45. if[$j-eq3]
  46. then
  47. break
  48. fi
  49. j=$(($j+1))
  50. echo-e"$j\c"
  51. evalecho"\$$j"
  52. done


测试结果如下:


分享到:
评论

相关推荐

    109个shell脚本合集.pdf

    Shell脚本合集 Shell脚本是一种脚本语言,利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能。 Shell脚本可以直接使用在Windows、Unix、Linux上面,并且可以调用大量系统内部的功能来解释...

    Shell脚本学习教程PDF版

    首先,Shell脚本的基础包括变量、条件语句、循环结构和函数。变量是存储数据的地方,可以是文本、数字或者其他类型。在Shell脚本中,变量声明简单,直接赋值即可。条件语句(如if-else)用于根据不同的条件执行不同...

    shell脚本循环调度程序

    ### shell脚本循环调度程序知识点解析 #### 一、标题:shell脚本循环调度程序 在计算机编程领域,shell脚本是一种使用Unix Shell语言编写的脚本程序,它被广泛应用于自动化任务处理、系统管理等领域。标题“shell...

    shell脚本中的几种循环操作(附脚本)

    在Shell脚本编程中,循环结构是不可或缺的一部分,它允许我们重复执行一段代码,直到满足特定条件为止。这里,我们将详细探讨在Shell脚本中常用的几种循环操作。 1. **For循环** For循环用于遍历一个列表或一组值...

    Shell脚本之无限循环的两种方法

    ### Shell脚本之无限循环的两种方法 在Shell脚本编程中,循环结构是一种非常重要的控制结构,它允许我们重复执行一系列命令直到满足特定条件为止。无限循环是一种特殊的循环形式,意味着循环会一直持续下去,除非...

    250个shell脚本

    这展示了Shell脚本在安全领域的应用,结合正则表达式和循环结构处理日志数据。 2. Linux系统告警脚本:这个脚本用于发送系统告警邮件,例如在系统发生特定事件时。它演示了如何设置mailx工具发送邮件,以及使用vi...

    Shell 脚本编程实战100例.pdf

    首先,Shell脚本编程是Linux系统管理员必备的技能之一,它允许自动化地执行许多日常任务。Shell脚本可以通过组合常用的命令行工具,比如rsync、find、sed、awk等,来实现复杂的数据处理和自动化管理。本书通过100个...

    100个shell脚本合集

    在shell脚本中,可以通过监控Nginx日志来识别异常IP,例如当某个IP在短时间内访问次数超过设定阈值(如10次),则将其加入iptables防火墙的黑名单,阻止其继续访问。同时,脚本会记录被屏蔽的IP到 `/tmp/drop_ip.log...

    linux命令行与shell脚本编程.pdf

    书中会讲解Shell脚本的基本结构,包括变量的使用、条件判断、循环控制、文件读写操作以及如何使用函数来提高代码的复用性。 此外,针对脚本的调试和优化,书中也会提供一些技巧和最佳实践,比如如何在编写脚本时...

    shell脚本学习指南pdf

    **Shell脚本学习指南** Shell脚本是一种在Unix/Linux操作系统中使用的编程语言,它允许用户通过命令行界面执行一系列操作,实现自动化任务处理。作为学习Shell脚本的指南,这本书籍旨在帮助读者深入理解Shell脚本...

    Shell脚本编程100例

    Shell脚本编程是Linux系统管理中的重要技能,它允许用户自动化执行一系列命令,大大提高工作效率。以下是一些关于Shell脚本编程的关键知识点: 1. **Hello World脚本**:这是所有编程语言的基础,用于验证环境设置...

    SHELL脚本练习 写一个脚本,利用循环计算10的阶乘

    在这个练习中,我们将编写一个SHELL脚本,利用循环和continue关键字,计算100以内能被3整除的数之和。脚本代码如下: ```bash #!/bin/sh sum=0 for a in `seq 1 100` do if [ `expr $a % 3` -ne 0 ] then ...

    shell脚本与Makefile区别.docx

    "shell脚本与Makefile区别" shell 脚本和 Makefile 是两个不同的工具,它们都用于自动化构建和编译过程,但是它们有很大的不同之处。本文将详细介绍 shell 脚本和 Makefile 的区别。 首先,shell 脚本和 Makefile ...

    shell脚本大全

    在IT领域,Shell脚本是Linux和Unix操作系统中不可或缺的一部分,它是一种强大的自动化工具,能够帮助用户执行一系列命令,简化日常任务。"shell脚本大全"这个资源可能包含了大量的示例脚本,涵盖了各种用途和场景,...

    如何让Android系统或Android应用执行shell脚本

    在 system/core/init/init.rc 中的 Main 函数中,有一个 for 循环,其中有一个 handle_property_set_fd() 函数,该函数负责检查权限和执行脚本。我们可以在该函数中添加一些代码来让我们的服务启动。例如,我们可以...

    korn-shell脚本入门.docx

    Korn Shell脚本还可以使用for循环来读取文件中的行,并执行相应的操作。在脚本中,可以使用不同的命令,如date命令、hostname命令等,以获取相应的信息。 Korn Shell脚本提供了一个强大且灵活的方式来自动化Unix...

    Linux 命令与Shell 脚本编程pdf书籍

    《Linux命令行与Shell脚本编程大全》是一本专为Linux初学者编写的经典教材,旨在帮助读者深入理解和掌握Linux操作系统中的基本命令行操作以及Shell脚本编程技术。这本书全面覆盖了从基础到进阶的各种主题,对于想要...

    《shell高级脚本编程指南》.pdf

    《shell高级脚本编程指南》是一本专注于Shell脚本编程的指南书。它旨在以实例讲解的方式引导读者从Shell脚本编程的入门阶段,逐步提升至进阶水平。书中内容涵盖了从基础的脚本结构到复杂的脚本处理技巧,是Linux系统...

    Shell脚本-从入门到精通.ppt

    shell脚本编程基础知识点 shell脚本是Linux操作系统中的一种编程语言,用于自动执行一系列命令。shell脚本文件是一个纯文本文件,可以使用任何文本编辑器编写,通常以.sh作为后缀名。 一、shell脚本的基本结构 ...

Global site tag (gtag.js) - Google Analytics