Shell中有3中循环,分别是for,while,until,until与while正好相反,前者条件为假则执行,后者条件为真时执行。基本和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
break和continue
说到循环,肯定不能漏掉break和,continue,它们的作用和在C语言中一模一样,完。
Example
下面是一个综合的示例,用于打印从命令行输入的参数。
- #case1
- k=1
- echo"Case$k:"
- j=0
- foriin"$@"
- do
- j=$(($j+1))
- echo-e"$j\c"
- echo$i
- done
- #case2
- k=$(($k+1))
- echo
- echo"Case$k:"
- j=0
- fori
- do
- j=$(($j+1))
- echo-e"$j\c"
- echo$i
- done
- #case3
- #testcontinue
- k=$(($k+1))
- echo
- echo"Case$k:"
- j=0
- while[$j-lt$#]
- do
- j=$(($j+1))
- if[$j-eq3]
- then
- continue
- fi
- echo-e"$j\c"
- evalecho"\$$j"
- done
- #case4
- k=$(($k+1))
- echo
- echo"Case$k:"
- j=0
- until[$j-eq$#]
- do
- if[$j-eq3]
- then
- break
- fi
- j=$(($j+1))
- echo-e"$j\c"
- evalecho"\$$j"
- done
测试结果如下:
分享到:
相关推荐
shell脚本循环调度程序,样例代码,直接就可以使用。
在写Shell脚本时,对于循环的几种写法,我想大家并不陌生。但若不是经常写,也会遗忘一些循环语法,或者只能够想起某一两种语法编写脚本。本脚本中总结了Shell中经常使用的几种循环操作。
主要介绍了Shell脚本之无限循环的两种方法,本文直接给出代码实例,需要的朋友可以参考下
Linux系统自动不停重启并计数的shell脚本
【shell脚本】shell脚本之条件判断if、for与while循环(shell脚本基础学习二) shell中的if 单分支 if 条件测试 ;then 命令序列 fi 双分支 if 条件测试 ;then 命令序列1 else 命令序列2 fi 多分支 if 条件测试 ;...
SHELL脚本练习 写一个脚本,利用循环计算10的阶乘
shell 基础简单的循环判断语句, 闲的时候写的。
常用shell脚本, Dos攻击防范(自动屏蔽攻击IP).sh 一键部署等等 Linux系统发送告警脚本.sh MySQL数据库备份单循环.sh MySQL数据库备份多循环.sh nginx 访问访问日志按天切割.sh nginx.conf nginx访问日志分析...
《Shell脚本专家指南》旨在为Linux、Unix以及OSx系统管理员提供短小精悍且功能强大的shell实现解决方案,教会读者如何使用现有调试器调试shell脚本。全书分为3个部分:脚本技术基础、系统交互和高级技术、有用的脚本...
提高内存使用率的脚本
shell脚本 for循环输出系统用户列表只显示用户列,shell脚本 for循环输出系统用户列表只显示用户列
shell 内建命令,比如 test 与循环结构,也会给脚本添加强力的支持和增加灵活性.Shell脚本对于 管理系统任务和其它的重复工作的例程来说,表现的非常好,根本不需要那些华而不实的成熟 紧凑的程序语言.
我们在介绍标准输入和标准输出以及 w h i l e循环的时候已经几次遇到 的应用。我们学会 了如何发送邮件,如何构建一个菜单,不过 还有很多其他的用法。 本章将介绍以下内容: • 快速创建一个文件。 • 自动进入菜单...
用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的...
批量检测端口并导出记录 附件中的telnet.sh为执行脚本 ip.txt为IP地址,端口在脚本中自定 实现多IP多端口 默认路径/root 上传到服务器默认路径下直接可以使用 运行完成后: log.txt为记录清单
Shell脚本编程详解 Shell命令行的运行 编写、修改权限和执行Shell程序的步骤 在Shell程序中使用参数和变量 表达式比较、循环结构语句和条件结构语句 在Shell程序中使用函数和调用其他Shell程序
1、shell脚本 3 2、shell脚本实践 4 Shell变量 4 1、使用变量 5 2、只读变量 5 3、删除变量 5 4、变量类型 6 5、shell字符串 6 6、Shell数组 7 7、Shell注释 9 Shell传递参数 9 1、实例 9 Shell数组 11 Shell运算符 ...
今天小编就为大家分享一篇shell for循环、循环变量值付给其他shell脚本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧