for循环与while循环

简介:

for循环

格式:for 变量名 in 列表

do 命令1 ......

done

当变量值在列表里, for循环即执行一次所有命令,使用变量名访问列表中取值。命令可为任何有效的 shell命令和语句。变量名为任何单词。 in列表用法是可选的,如果不用它, for循环使用命令行的位置参数。

简单的for循环

循环输出12345

for  loop in 1 2 3 4 5

do

echo $loop

done

相对字符串来说 变量后边的赋值也可以是字符串,或者是字符串和变量的结合

比如:echo "this is $loop"

或者在执行命令中输出ls的结果

比如:for loop in `ls`

do 

echo $loop

done


对for循环使用参数
在for循环中省去 in列表选项时,它将接受命令行位置参数作为参数。实际上即指明:
for
params in"$@"
params in"$*"


for params

do

echo this is test $params 

done

在运行脚本时,后边直接传入参数 进行输出即可

比如在循环中使用find命令 进行查询

for loop

do

echo find / -name $loop -print

done


使用for进行连接

hosts=172.16.8.44

for loop in $hosts

do

ping -c 2 $loop

done


循环计数
count=0

for files in *

do 

count=`expr $count + 1`

done

echo "there is $count files in `pwd`"


for循环和本地文档
在f o r循环体中可使用任意命令。下面的例子中,一个变量包含所有当前登录用户。使用who命令并结合 awk语言可实现此功能。然后 for循环循环每一用户,给其发送一个邮件,邮件信息部分用一个本地文档完成.

whos_on=`who -u | awk {print $1}`

for user in $whos_on

do

mail $user << mayday

hello,dear!

do you see this email!

mayday

$LOGNAME

done


for循环嵌入
嵌入循环可以将一个 for循环嵌在另一个 for循环内:
for 变量名1 in 列表1   

 do
     for 变量名2   i n 列表2   

   do
          命令1...
   done
done


for file in `ls`

do

   for dir in `find $file -type d `

   do

       number=`find $dir -type d | wc -l`

       echo "there is $number directories in `pwd` ,they are $dir"

       done

done



while循环

while循环用于不断执行一系列命令,也用于从输入文件中读取数据,其格式为:
while 命令
do
命令1
命令2
...
done
虽然通常只使用一个命令,但在 while和do之间可以放几个命令。命令通常用作测试条件。
只有当命令的退出状态为0时,do和done之间命令才被执行,如果退出状态不是0,则循环终止。
命令执行完毕,控制返回循环顶部,从头开始直至测试条件为假。


简单的while循环

count=0

while [ $count lt 5 ]

do

count=`expr $count + 1`

echo $count

done


使用while循环读键盘输入

echo "type <ctrl-D> to terminate"

echo -n "please input anykey: "

while read key

do

echo "yes, this is my input: $key"

done


用while循环从文件中读取数据。可以用一个变量保存每行数据,当不再有读取数据时条件为真。 

while循环使用输入重定向以保证从文件中读取数据。注意整行数据被设置为单变量 $line。
while read line

do

echo $line

done < name.txt


使用IFS读文件
输出时要去除冒号域分隔符,可使用变量 I F S。在改变它之前保存 I F S的当前设置。然后
在脚本执行完后恢复此设置。使用 I F S可以将域分隔符改为冒号而不是空格或 t a b键。
本文转自岁月丶倾城博客51CTO博客,原文链接http://blog.51cto.com/alca0126/1396693如需转载请自行联系原作者


laihuadongcto

相关文章
|
2月前
|
存储 C++ 容器
【C++11】 基于范围的for循环
【C++11】 基于范围的for循环
23 0
|
2月前
|
程序员 C++
|
5月前
for循环、while循环和do while循环有什么不同
for循环、while循环和do while循环有什么不同
48 0
|
5月前
|
程序员 C++
|
6月前
|
C语言
C 循环
C 循环。
24 1
|
7月前
dowhile循环
do { // 循环体 } while (condition);
39 0
|
7月前
|
Java
for循环
Java for循环是一种用于迭代和重复执行代码块的循环结构。它可以用于遍历数组、集合、字符串等数据结构,也可以用于执行一些固定次数的操作。Java for循环包括三个部分:初始化语句、条件语句和迭代语句。初始化语句用于初始化循环控制变量,条件语句用于检测循环是否继续,迭代语句用于更新循环控制变量的值。
26 0
|
10月前
|
Python
for循环与if判断语句的运用
for循环与if判断语句的运用
71 0
|
10月前
|
编译器 C++ 容器
C++11之基于范围的for循环
C++11之基于范围的for循环
73 0
|
12月前
|
文件存储
ModelBuilder中的For循环和While循环
鸽了这么久了的ModelBuilder教程,开始恢复更新了,嘤嘤嘤 现在开始讲迭代器,迭代是指以一定的自动化程度多次重复某个过程,通常又称为循环。说的通俗点就是批量循环处理,简称批处理。
96 0