在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言上文我们讨论了for循环的使用,在有限循环里,我们使用for循环是很方便的一件事情,今天我们来探讨下while循环 while循环语句的语法分析 语法格式一: while [条件] do 操作 done 语法格式二: while read line do 操作 done < file 通过read命令每次读取一行文件,文件内容有多少行,while循环多少次 注意:只有表达式为真,do和done之间的语句才会执行,表达式为假时,结束循环(即条件成立就一直执行循环) 例如: while true ;do echo 'helloword' done while 的使用案例1. 循环输出1-10的数字#!/bin/bash num=1 while [ $num -le 10 ] do echo $num num=$(( $num + 1 )) done 2. 使用while读文件并打印文件内容用法一: while read line do echo $line done <./a.txt 用法二: cat ./a.txt| while read line do echo $line done for实现的读取文件并着行打印 #!/bin/bash content=$(cat ./a.txt) for i in $content do echo $i done 3. 输出两数相乘的效果(如下图)此处感谢 @一只小小白丶 的建议,因为大多数人看到等号就会想到两边相等,这符合我们的教育习惯。
如果要实现图中效果可以按照如下方式做: #!/bin/bash num=1 while [ $num -lt 10 ] do sum=$(( $num * $num)) echo "$num * $num = $num" ((num++)) done 当然大多数人习惯了让等式两边必须相等,不相等看上去别扭,这也是义务教育的结果,也可以稍微改一下: #!/bin/bash num=1 while [ $num -lt 10 ] do sum=$(( $num * $num)) echo "$num * $num = $sum" ((num++)) done 这样输出的结果符合大多数人的数学习惯: 创建指定文件里的用户 指定文件 name.txt 里面包含 zhangsan lisi wangwu name.txt 如下: [root@ecs-c13b ~]# cat name.txt zhangsan lisi wangwu 从name.txt里面遍历用户名并创建用户 #!/bin/bash for name in `cat /root/name.txt` #for name in $(cat /root/a.txt) do id $name &> /dev/null if [ $? -ne 0 ];then useradd $name echo "123456" |passwd --stdin $name &> /dev/null echo "user $name created" else echo "user $name is exist" fi done 总结到目前为止,for-while-if-case,这四个常用的控制语句我们都已经探讨过了,接下来就是大量练习和综合应用的时候,操练起来把。 到此这篇关于shell脚本实战-while循环语句的文章就介绍到这了,更多相关shell -while循环内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论