for fruit in apple orange pear    #写死
do
each ${fruit}s
done fruits="apple orange pear" #输入变量的值
for f in $fruits

一、for循环

1、向for提供数据

1)写死 或 变量

2)read

3)从命令行读取$*    $@

  for fruit in $*; do  或者 for fruit; do(这一技术使用于函数,乱入函数:)

do_i_like()
{
for fruit; do
echo I realy like ${fruit}s
done
}
do_i_like apple banana oranges

4)使用seq命令给for输入数据(用于产生从某个数到另外一个数之间的所有整数)

  # seq 1 10
  结果是1 2 3 4 5 6 7 8 9 10  

  for i in `seq 1 10`

  for host in `grep "172.30.0" /etc/hosts | awk '{ print $2 }'`

2  bash有类似C风格的for循环

   for ((i=,j=; i<=; i++,j-= ))
do
printf "i=%03d j=%03d\n" $i $j
done

二、while循环

在没有需要遍历的列表但在具有决定循环何时结束的可测试条件时,使用while最合适。

1)测试循环本身的变化

2)逐行读取文本文件的内容

read password < /etc/passwd读入一行
while read passwd
do
echo $passwd      #这里可以加入好多功能!
done < /etc/passwd一直循环读,直到不再输入
#!/bin/bash
#通过管道循环读取/etc/passwd内容
cat /etc/passwd | while read line
do
#以:为分割符,只读取第一个字段
user=`awk -F : '{print $1}' <<< ${line}`
echo "Account: ${user}"
done

3)重定向到文件

   i=
while [ $i -lt ]
do
echo "`date`" : Partition $i
ls -ld /dev/sda$i
sleep
let i=$i+
done > partition.txt >partitionerror.txt

4)内置的:命令,或者是/bin/true命令,他们总是返回0,表示成功,使用他们可以让循环永远执行下去。

host=${:-declan}
while grep -qw $host /tmp/hosts-to-ping.txt
do
:
done

5)死循环

   while :    #中间有空格
do
echo 'xx'
sleep
done

用ctrl+c结束

三、嵌套循环

一个循环存在于另一个循环中

四、循环的break和continue

break  break 2退出两层;  

continue  continue 2表示要跳转的外层循环层数

五、带case的while循环

就是while里边使用case

六、until循环

除了测试条件相反,until循环与while循环在其他地方完全相同。即满足条件就退出循环

until 条件
do

done

七、select循环

非常适合编写菜单的循环,常和if、case等一起使用

它根本没有条件测试,退出的唯一方式是使用break或exit   打断用ctrl+c

提示符在$PS3变量

和for一样可以去掉in (x),这样select会使用自己所在的脚本或函数的$*参数

我的samba管理器好想可以用它做一个命令行的!

   select item in one two three four five
do
if [ ! -z $item ]; then
echo "You choiced $item"
break
else
echo "$REPLY is not valid"  用户输入的值在$REPLY变量
fi
done

bash6——循环的更多相关文章

  1. 【.net 深呼吸】细说CodeDom(8):分支与循环

    有人会问,为啥 CodeDom 不会生成 switch 语句,为啥没生成 while 语句之类.要注意,CodeDom只关心代码逻辑,而不是语法,语法是给写代码的人用的.如果用.net的“反编译”工具 ...

  2. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  3. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  4. 模仿Linux内核kfifo实现的循环缓存

    想实现个循环缓冲区(Circular Buffer),搜了些资料多数是基于循环队列的实现方式.使用一个变量存放缓冲区中的数据长度或者空出来一个空间来判断缓冲区是否满了.偶然间看到分析Linux内核的循 ...

  5. 【JS基础】循环

    for 循环的语法: for (语句 1; 语句 2; 语句 3) { 被执行的代码块 } 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块)的条件 语句 3 在循环(代码块)已被 ...

  6. 【python之路4】循环语句之while

    1.while 循环语句 #!/usr/bin/env python # -*- coding:utf-8 -*- import time bol = True while bol: print '1 ...

  7. To Java程序员:切勿用普通for循环遍历LinkedList

    ArrayList与LinkedList的普通for循环遍历 对于大部分Java程序员朋友们来说,可能平时使用得最多的List就是ArrayList,对于ArrayList的遍历,一般用如下写法: p ...

  8. JavaScript单线程和浏览器事件循环简述

    JavaScript单线程 在上篇博客<Promise的前世今生和妙用技巧>的开篇中,我们曾简述了JavaScript的单线程机制和浏览器的事件模型.应很多网友的回复,在这篇文章中将继续展 ...

  9. .NET基础 一步步 一幕幕[循环、逻辑语句块]

    循环.逻辑语句块   好久不写博客了,断更了好几天了,从上周五到今天,从北京到上海,跨越了1213.0公里,从一个熟悉的城市到陌生的城市,还好本人适应力比较好,还有感谢小伙伴的接风咯,一切都不是事,好 ...

随机推荐

  1. 《Java并发编程实战》读书笔记-第3章 对象的共享

    可见性 在没有同步的情况下,编译器.处理器以及运行时都可能做指令重排.执行结果可能会出现错误 volatile变量 编译器与运行时不会进行指令重排,不会进行缓存,使用volatile变量要满足以下条件 ...

  2. [洛谷P3613]睡觉困难综合症

    写码30min,调码3h的题.. 好在最后查出来了 , , n, x, y, z); 改成了 , , n, mark[x], y, z); 然后$40\rightarrow 100$ #include ...

  3. MarkDown的常用语法

    个人比较喜欢Markdown的语法,常用来做一些笔记,下面就简单介绍一下它的语法. 概览 宗旨 Markdown 的目标是实现「易读易写」. 可读性,无论如何,都是最重要的.一份使用 Markdown ...

  4. Alpha阶段--第七周Scrum Meeting

    任务内容 本次会议为第六周的Scrum Meeting会议 召开时间为周日下午5点,在潮音餐厅召开,召开时间约为30分钟,对已经完成项目的总结和对今后项目设计的展望 队员 任务 张孟宇 “我的”界面代 ...

  5. C#/.NET/.NET Core定时任务调度的方法或者组件有哪些--Timer,FluentScheduler,TaskScheduler,Gofer.NET,Coravel,Quartz.NET还是Hangfire?

    原文由Rector首发于 码友网 之 <C#/.NET/.NET Core应用程序编程中实现定时任务调度的方法或者组件有哪些,Timer,FluentScheduler,TaskSchedule ...

  6. Token refresh的实现

    实现原理: 在access_token里加入refresh_token标识,给access_token设置短时间的期限(例如一天),给refresh_token设置长时间的期限(例如七天).当活动用户 ...

  7. iOS11 SDK 新特性 CoreML 及swift 小demo

    github代码 如果本博客对您有帮助,希望可以得到您的赞赏! swift 机器学习Core ML的简单调用小demo.完整代码附上: https://github.com/Liuyubao/LYBC ...

  8. 【原创】go语言学习(十一)package简介

    目录 Go源码组织方式 main函数和main包 编译命令 自定义包 init函数以及执行行顺序 _标识符 Go源码组织方式 1. Go通过package的方式来组织源码 package 包名 注意: ...

  9. [Python]python面向对象 __new__方法及单例设计

    __new__ 方法 使用 类名() 创建对象时,Python 的解释器 首先 会 调用 __new__ 方法为对象 分配空间 __new__ 是一个 由 object 基类提供的 内置的静态方法,主 ...

  10. Lab_1:练习3——分析bootloader进入保护模式的过程

    文章链接:https://www.cnblogs.com/cyx-b/p/11809742.html 作者:chuyaoxin 一.实验内容 BIOS将通过读取硬盘主引导扇区到内存,并转跳到对应内存中 ...