shell编程——循环执行

简介:

我们知道程序无非三种执行方式——顺序、条件、循环。顺序就是一条一条的执行,是一马平川;条件就是个十字路口,根据条件决定自己的走向;循环就是笨驴拉磨,一圈一圈的走,知道达到条件终止。现在集中shell中的循环执行。

存在两个模式:

  • while do done、 until do done
  • for do done

while do done、 until do done模式

基本语法:

复制代码
##while do done 不满足条件时会终止循环
while [ 条件表达式 ]
do
    条件满足时可执行的命令
done

##until do done 满足条件是会终止循环
until [ 条件表达式 ]
do
    条件不满足时可执行的命令
done
复制代码

例子:求1--100之和

 

复制代码
#!bin/bash
sum=0
i=1
while [ "$i" -le "100" ]
do
    sum=$(($sum + $i))
    i=$(($i+1))
done

echo "sum(1-100):" $sum
复制代码
复制代码
#!bin/bash
sum=0
i=1
until [ "$i" == "101" ]
do
    sum=$(($sum + $i))
    i=$(($i + 1))
done

echo "sum(1-100):" $sum
复制代码

这里特别强调一下算式最好用这个模式: var= ( ( var + 1))

for do done 模式

for((初始值; 条件; 执行步长))
do
        程序段
done

例子:还是1--100之和

复制代码
#!bin/bash
for((i=1; i<=100; i++))
do
    sum=$(($sum + $i))
    i=$(($i + 1))
done
echo "sum(1--100):" $sum
复制代码

注意细节:for((初始值; 条件; 执行步长))里面的预压和c语言一样了,但是一点不同双括号。

更高级点的模式:

for var in con1 con2 con3
do
    程序段
done

例子:列举出目录下的所有文件名

复制代码
#!bin/bash
read -p "Please enter the dir name:" dirname
list=`ls $dirname`
for file in $list
do
    echo $file
done
复制代码

注意细节:list=`ls $dirname`,其中的引号不是单引号,是键盘1左边的点号(波浪线下面),它可以使程序执行时优先执行。上面的程序还可以精简为:

复制代码
#!bin/bash
read -p "Please enter the dir name:" dirname
for file in `ls $dirname`
do
    echo $file
done
复制代码

 

 

 



本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/archive/2013/03/25/2981685.html,如需转载请自行联系原作者

相关文章
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
188 6
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
11月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
Shell Linux 开发工具
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
220 12
|
12月前
|
Shell
Shell编程(下)
Shell编程(下)
185 1
|
12月前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
120 1
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
146 12
|
Shell Linux
Shell 编程 编写hello word
Shell 编写hello word
130 5