一、while语句

while语句是shell脚本中的循环语句,语法格式如下

while 测试条件;do

语句1

语句2

done

解释:当测试条件满足的时候循环,当测试条件不满足的时候跳出循环

二、常见使用

1、经典while语句

计算1到100之间的和

#!/bin/bash
#Version 0.1
#Author:Myb_sir
#Pragarm:计算1到100之间所有整数的和
#Date:2014-03-30
#定义变量
declare -i Sum=0
declare -i i=1
while [ $i -le 100 ];do
#下方这条while语句也可以实现循环条件
#while (($i<101));do
let Sum+=i
let ++i
#下方这两行语句也可以实现变量Sum和i的重新赋值
#Sum=$[$Sum+$i]
#i=$[$i+1]
done
echo "1到100之间所有整数的和为$Sum"

结果如下

[root@myb362 scripts]# ./whilesum.sh
1到100之间所有整数的和为5050

2、while read line 用法之读取文件

在Linux中有很多方法逐行读取一个文件,其中最常用的就是while read line 这种方法,而且效率最高,使用最多。

语法结构

while read line;do

echo $line

done < /etc/passwd

取出系统中的所有用户和shell

#!/bin/bash
#Version 0.1
#Author:Myb_sir
#Pramgram:显示系统中的所有用户和默认shell
#Date:2014-03-30
while read line;do
User=`echo $line |cut -d: -f 1`
Shell=`echo $line |cut -d: -f 7`
echo "用户$User的默认shell是$Shell"
done < "/etc/passwd"

执行结果

[root@myb362 scripts]# ./whileuser.sh
用户root的默认shell是/bin/bash
用户bin的默认shell是/sbin/nologin
用户daemon的默认shell是/sbin/nologin
用户adm的默认shell是/sbin/nologin
用户lp的默认shell是/sbin/nologin
用户sync的默认shell是/bin/sync
用户shutdown的默认shell是/sbin/shutdown
用户halt的默认shell是/sbin/halt
用户mail的默认shell是/sbin/nologin
用户uucp的默认shell是/sbin/nologin
用户operator的默认shell是/sbin/nologin
用户games的默认shell是/sbin/nologin
用户gopher的默认shell是/sbin/nologin
用户ftp的默认shell是/sbin/nologin
用户nobody的默认shell是/sbin/nologin
用户vcsa的默认shell是/sbin/nologin
用户saslauth的默认shell是/sbin/nologin
用户postfix的默认shell是/sbin/nologin
用户sshd的默认shell是/sbin/nologin

3、while read line用法之管道

语法结构

command Filename |while read line;do

echo $line

done

上边的例子同样还可以这样写

#!/bin/bash
#Version 0.1
#Author:Myb_sir
#Pramgram:显示系统中的所有用户和默认shell
#Date:2014-03-30
cat /etc/passwd|while read line;do
User=`echo $line |cut -d: -f 1`
Shell=`echo $line |cut -d: -f 7`
echo "用户$User的默认shell是$Shell"
done

执行结果

[root@myb362 scripts]# ./whileuser.sh
用户root的默认shell是/bin/bash
用户bin的默认shell是/sbin/nologin
用户daemon的默认shell是/sbin/nologin
用户adm的默认shell是/sbin/nologin
用户lp的默认shell是/sbin/nologin
用户sync的默认shell是/bin/sync
用户shutdown的默认shell是/sbin/shutdown
用户halt的默认shell是/sbin/halt
用户mail的默认shell是/sbin/nologin
用户uucp的默认shell是/sbin/nologin
用户operator的默认shell是/sbin/nologin
用户games的默认shell是/sbin/nologin
用户gopher的默认shell是/sbin/nologin
用户ftp的默认shell是/sbin/nologin
用户nobody的默认shell是/sbin/nologin
用户vcsa的默认shell是/sbin/nologin
用户saslauth的默认shell是/sbin/nologin
用户postfix的默认shell是/sbin/nologin
用户sshd的默认shell是/sbin/nologin

四、无限循环

while中无限循环使用((1))或者[1]

语法结构

while (());do

语句1

语句2

done

或者使用条件判断也可以

while [ 1 –gt 0 ];do

语句1

语句2

done

总结:以上是while语句的基本用法。还有until一个循环语句了。今天争取更完。

转载于:https://blog.51cto.com/mybsir/1386984

Linux基础之while语句相关推荐

  1. linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...

    作业一: 1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group > /1.txt 2)将用户信息数据库文件和用户 ...

  2. linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...

    Linux基础教程linux系统中的批量删除文件与空文件删除的命令介绍 Linux资料下面删除文件或者目录命令rm(remove): Linux培训功能说明:删除文件或目录. 语 法:rm [-dfi ...

  3. Linux基础急速入门:用 TCPDUMP 抓包

    简介 tcpdump是一个用于截取网络分组,并输出分组内容的工具.凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具 tcpdump 支持针对网络层.协议.主机. ...

  4. [Coggle 30 Days of ML(2021.11)]Linux基础使用

    Linux基础使用 Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思 ...

  5. LINUX基础知识笔记全

    LINUX基础知识整理 1.Linux 基本知识 2.Linux 文件和目录管理 vim scp sftp 压缩和归档 文件访问权限 脚本 3.Linux 用户和群组管理 sudo ssh opens ...

  6. Linux 基础入门

    Linux 基础入门 本课程教你如何熟练地使用 Linux,本实验中通过在线动手实验的方式学习 Linux 常用命令,用户与权限管理,目录结构与文件操作,环境变量,计划任务,管道与数据流重定向等基本知 ...

  7. 2017-2018-2 20179204《网络攻防实践》linux基础

    我在实验楼中学习了Linux基础入门课程,这里做一个学习小结. 第一节 linux系统简介 本节主要介绍了linux是什么.发展历史.重要人物.linux与window的区别以及如何学习linux. ...

  8. Linux基础入门教程

    Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux: Linux初级,也就是入门linux 前提是需要有一些计算机硬件相关的知识或是有 ...

  9. Linux基础学习(十七)--- wiki,jira 搭建、公司面试常见问题

    Linux基础学习(十七) wiki,jira 搭建.公司面试常见问题 mysql中 utf8 支持中文字符 du -sh * 查看当前目录所有文件大小 wiki 企业多人协作系统–>企业级文档 ...

最新文章

  1. 甲方爸爸,大概你要的是代码生成器吧?
  2. 规范化的递归转换成非递归
  3. SDWebImage源码阅读(三)UIImage+GIF
  4. sklearn:auc、roc_curve、roc_auc_score
  5. Android-Activity启动流程
  6. STM32启动文件代码解析
  7. 案例讲清如何构建“What-if分析”,教你轻松玩转动态参数
  8. 单片机的Bootloader,可以实现用户轻松升级程序
  9. PyODPS DataFrame:统一的数据查询语言
  10. pytest-allure测试报告
  11. 《音乐达人秀:Adobe Audition CC实战222例》——1.3 数字录音记录生活越来越便捷...
  12. HTML简介与历史版本
  13. 30岁女IT工程师感叹:靠这工具,把报表做成养老工作,月薪快3W
  14. 有哪些适合新手练手的C/C++项目
  15. Java聊天室yadiChat step1 登陆注册
  16. MyQQ框架火山SDK
  17. php不能撤销,word无法撤销怎么解决
  18. 电脑图片打不开并且显示没有注册类怎么办?
  19. Git down代码简易操作手册
  20. java der decode_支付宝进行签名时爆DER input, Integer tag error异常

热门文章

  1. 如何从Swift调用Objective-C代码?
  2. 我可以在输入字段上使用:before或:after伪元素吗?
  3. win10电脑ip地址怎么设置?几步就能学会
  4. File指定过滤器得到需要的文件
  5. c3p0与dbcp的异同
  6. matlab pdm转pcm_STM32F407 PDM转PCM问题
  7. 新开普自助查询 单点登录 php,综合教务管理系统,高校教务管理系统,教务管理系统 - 新开普(NewCapec)...
  8. asp转php后数据库连接代码,ASP_asp 数据库连接函数代码,以下是SQL连接代码: 复制代码 - phpStudy...
  9. 品优购案例之横向列表伪元素的应用
  10. 找出数组的最大公约数