Linux基础之while语句
一、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语句相关推荐
- linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...
作业一: 1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group > /1.txt 2)将用户信息数据库文件和用户 ...
- linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...
Linux基础教程linux系统中的批量删除文件与空文件删除的命令介绍 Linux资料下面删除文件或者目录命令rm(remove): Linux培训功能说明:删除文件或目录. 语 法:rm [-dfi ...
- Linux基础急速入门:用 TCPDUMP 抓包
简介 tcpdump是一个用于截取网络分组,并输出分组内容的工具.凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具 tcpdump 支持针对网络层.协议.主机. ...
- [Coggle 30 Days of ML(2021.11)]Linux基础使用
Linux基础使用 Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思 ...
- LINUX基础知识笔记全
LINUX基础知识整理 1.Linux 基本知识 2.Linux 文件和目录管理 vim scp sftp 压缩和归档 文件访问权限 脚本 3.Linux 用户和群组管理 sudo ssh opens ...
- Linux 基础入门
Linux 基础入门 本课程教你如何熟练地使用 Linux,本实验中通过在线动手实验的方式学习 Linux 常用命令,用户与权限管理,目录结构与文件操作,环境变量,计划任务,管道与数据流重定向等基本知 ...
- 2017-2018-2 20179204《网络攻防实践》linux基础
我在实验楼中学习了Linux基础入门课程,这里做一个学习小结. 第一节 linux系统简介 本节主要介绍了linux是什么.发展历史.重要人物.linux与window的区别以及如何学习linux. ...
- Linux基础入门教程
Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux: Linux初级,也就是入门linux 前提是需要有一些计算机硬件相关的知识或是有 ...
- Linux基础学习(十七)--- wiki,jira 搭建、公司面试常见问题
Linux基础学习(十七) wiki,jira 搭建.公司面试常见问题 mysql中 utf8 支持中文字符 du -sh * 查看当前目录所有文件大小 wiki 企业多人协作系统–>企业级文档 ...
最新文章
- 甲方爸爸,大概你要的是代码生成器吧?
- 规范化的递归转换成非递归
- SDWebImage源码阅读(三)UIImage+GIF
- sklearn:auc、roc_curve、roc_auc_score
- Android-Activity启动流程
- STM32启动文件代码解析
- 案例讲清如何构建“What-if分析”,教你轻松玩转动态参数
- 单片机的Bootloader,可以实现用户轻松升级程序
- PyODPS DataFrame:统一的数据查询语言
- pytest-allure测试报告
- 《音乐达人秀:Adobe Audition CC实战222例》——1.3 数字录音记录生活越来越便捷...
- HTML简介与历史版本
- 30岁女IT工程师感叹:靠这工具,把报表做成养老工作,月薪快3W
- 有哪些适合新手练手的C/C++项目
- Java聊天室yadiChat step1 登陆注册
- MyQQ框架火山SDK
- php不能撤销,word无法撤销怎么解决
- 电脑图片打不开并且显示没有注册类怎么办?
- Git down代码简易操作手册
- java der decode_支付宝进行签名时爆DER input, Integer tag error异常
热门文章
- 如何从Swift调用Objective-C代码?
- 我可以在输入字段上使用:before或:after伪元素吗?
- win10电脑ip地址怎么设置?几步就能学会
- File指定过滤器得到需要的文件
- c3p0与dbcp的异同
- matlab pdm转pcm_STM32F407 PDM转PCM问题
- 新开普自助查询 单点登录 php,综合教务管理系统,高校教务管理系统,教务管理系统 - 新开普(NewCapec)...
- asp转php后数据库连接代码,ASP_asp 数据库连接函数代码,以下是SQL连接代码: 复制代码 - phpStudy...
- 品优购案例之横向列表伪元素的应用
- 找出数组的最大公约数