while命令简介:

while循环:适用于循环次数未知的场景,要有退出条件,否则就成为死循环。

1.命令格式:

语法:

while  CONDITION; do

statement

...

done

2.命令功能:

while循环:适用于循环次数未知的场景,要有退出条件,否则就成为死循环。

3.命令参数:

while  CONDITION; do        condition:进入循环的条件

statement

...

done

while的特殊用法一:while死循环没有循环次数,一直循环,直到给出中断信号

while :; do

done

while的特殊用法二:从一个文件中读取每一行赋值给变量

while read LINE; do      (read LINE 变量LINE为文件中的每一行进行循环)

done < /PATH/TO/SOMEFILE   (输入重定向需要读取的文件)

Usage:

vim showuser.sh

#!/bin/bash

#

FILE=/etc/passwd

declare -i I=0

while read LINE; do

[ `echo "$LINE" | awk -F : '{print $NF}'` == '/bin/bash' ] && echo "$LINE" |awk -F : '{print $1}'    && let I++

[ $I -ge 3 ] && break   #break 达到条件就退出循环,continue是达到条件结束本轮循环执行下      一次循环

done < $FILE

4.命令实例:

1、计算100以内整数和

[root@xuelinux test]# vim while100.sh

#!/bin/bash

#program:

#练习使用while循环计算1到100正整数的和

#history  donggen  2016-11-02-21:21

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export PATH

declare -i I=1

declare -i SUM=0

while [ $I -le 100 ]; do

let SUM+=$I

let I++

done

echo "$SUM"

[root@xuelinux test]# chmod +x while100.sh

[root@xuelinux test]# ./while100.sh

5050                     从1到100的正整数和为5050

[root@xuelinux test]#

2、如果提示用户输入字符,如果不是quit就把小写字母全部变成大写字母,

如果是quit则退出脚本。

[root@xuelinux test]# vim whilequit.sh

#!/bin/bash

#program:

#如果输入的不是quit则把小写字母全部换成大写字母,quit退出循环

#history  donggen  2016-11-02-21:31

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export PATH

read -p "Input something:" SCRIPT

while [ $SCRIPT != "quit" ]; do

echo "$SCRIPT" | tr 'a-z' 'A-Z'

read -p "Input something:" SCRIPT

done

[root@xuelinux test]# chmod +x whilequit.sh

[root@xuelinux test]# ./whilequit.sh

Input something:abc

ABC

Input something:eroqe

EROQE

Input something:quit

[root@xuelinux test]#

3、写一个脚本,查看一个用户是否登录,如果没有登录继续查看,如果登录则提

示用户已经登录并退出循环。

[root@xuelinux test]# vim whiledonggen.sh

#!/bin/bash

#program:

#查看用户是否登录

#history  donggen  2016-11-02-21:45

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export PATH

USERNUM=donggen

who | grep "$USERNUM" &> /dev/null

NUM=$?

while [ $NUM -ne 0 ]; do

echo "$USERNUM is not login."

sleep 3

who | grep "$USERNUM" &> /dev/null

NUM=$?

done

echo "the $USERNUM is login."

[root@xuelinux test]# chmod +x whiledonggen.sh

[root@xuelinux test]# ./whiledonggen.sh

donggen is not login.    donggen 用户没有登录时一直提示没有登录

donggen is not login.

donggen is not login.

donggen is not login.

the donggen is login.   donggen用户登录后提示登录并退出循环。

[root@xuelinux test]#

linux 循环while,linux命令:while循环相关推荐

  1. shell脚本循环执行一个linux命令,Linux中循环执行shell命令的方法

    Linux命令行,循环执行shell命令 死循环 命令格式while true ;do ; done; 可以将 command 替换为任意命令. 下面以echo "hello"; ...

  2. linux find 循环查找,Linux下的find查找命令

    Linux下的查找命令有:which(查看可执行文件的位置),whereis(查看指定文件的位置),locate(配合数据库查找指定文件的内容).find(在磁盘上查找文件).grep(使用正则表达式 ...

  3. shell for循环1到100_浅谈Linux下shell 编程的for循环常用的6种结构

    浅谈Linux下shell 编程的for循环常用的6种结构 1. 常用for循环结构 (1) for 变量 in 值1 值2 值3... do 程序块儿 done (2) for 变量 in `命令` ...

  4. Linux shell的条件判断、循环语句及实例

    shell条件判断的两个特殊设备 /dev/null linux系统的空设备,也称为位桶,任何写入其中的数据均会被丢弃当你不想将标准化输出显示或者保存至文件时可以将文件从定向到/dev/null 禁止 ...

  5. linux下简单的shellfor循环程序,对Linux下shell编程之for循环的实例讲解

    对Linux下shell编程之for循环的实例讲解 linux 下 for 循环中可以使用 break 和 continue 关键字来跳出循环, 和java 用法一致 一.常用for循环结构 #语法一 ...

  6. Linux Shell脚本while和until循环

    Linux Shell脚本while和until循环 一.while循环 只要条件成立,则反复循环,不成立即停止 while 条件测试操作 do命令序列 done 例: 计算1到100所有整数和 二. ...

  7. linux shell (4) - Loop 循环

    linux shell (4) - Loop 循环 2015.10.18 视频教程 http://www.jikexueyuan.com/course/1529.html 欢迎提问! for 语法结构 ...

  8. linux for循环原理,linux for循环

    for循环是Linux shell 中最常用的结构.for 循环有三种结构:一种结构是列表for循环:第二种结构是不带列表for循环:第三种结构是类C风格的for循环. for var in list ...

  9. Linux嵌入式学习---c语言之循环结构

    Linux嵌入式学习---c语言之循环结构 一.while语句循环 1.1一般形式 1.2累加求和 二.do...while语句循环 2.1do....while语句一般形式 2.2do....whi ...

  10. linux循环控制结构,Linux Shell 之 Shell 基本控制结构(二)(循环结构)

    与其他编程语言类似,Shell支持for循环,和while 循环. 1.for 循环 for循环一般格式为: for 变量 in 列表 do command1 command2 ... command ...

最新文章

  1. python软件是免费的吗-7年程序员贡献出来的10大Python开源免费工具!
  2. 单点登录系统cas资料汇总
  3. 用BenchmarkDotNet看Property
  4. linux 批量同步,多主机目录到备份服务器批量同步脚本
  5. LeetCode 582. 杀死进程(图的遍历)
  6. 【BZOJ4668】冷战 并查集
  7. 单片机定时器中断原理
  8. windows 虚拟磁盘的软链接_如何在Windows的操作系统下创建VHD虚拟磁盘
  9. 你真的了解Android ViewGroup的draw和onDraw的调用时机吗
  10. 传智播客Java学习之类的继承
  11. VML编程之------background背景《VML极道教程》原著:沐缘华
  12. idea类注释模板,方法注释模板。
  13. ucore_os_lab lab1 report
  14. GHOST XP SP2 遐想网络 专用加强版
  15. 在线免费一键将头像转换卡通形象
  16. Latex 表格单元格内换行
  17. RL(Chapter 3): Finite Markov Decision Processes (有限马尔可夫决策过程)
  18. 华为手机安装Goole play教程及安装包
  19. HTML各种命令的代码
  20. ASP.NET幼儿园网站源码 前台+后台

热门文章

  1. 旧手机改文件储存服务器,旧手机改成云服务器
  2. 一文教你学会DIY串口线
  3. 原创nio socket mina+javascript+flash实现commet长连接网页聊天室
  4. 前端基础—HTML制作课程表
  5. java生成随机名字
  6. 信息系统管理工程师记忆口诀
  7. iOS开发:如何修改app名称
  8. 合宙 air720 模块通过串口助手连接到阿里云 IOT
  9. 通信教程 | USB、HDMI、DP接口及速度
  10. iperf3网络测速