Linux基础之while语句

时间:2022-09-08 16:42:59

一、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.sh1到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-30while read line;doUser=`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-30cat /etc/passwd|while read line;doUser=`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 �Cgt 0 ];do

 语句1

语句2

done

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

本文出自 “Linux步行街” 博客,请务必保留此出处http://mybsir.blog.51cto.com/4618614/1386984