码迷,mamicode.com
首页 > 其他好文 > 详细

7、read的使用和while循环

时间:2018-03-30 12:11:38      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:read while循环

read使用
如下实例,如果给的变量和参数个数一样就对应给变量赋值(如下图1),如果变量多了,对应赋值,后面的变量为空(如下图3)
如果变量少了,就对应赋值,最后一个变量全部赋值给剩余的参数(如下图2)

技术分享图片

下面-n是不换行

技术分享图片

有时候想要结合echo和read去使用一种颜色的输入显示就可以这样做;如下技术分享图片

技术分享图片技术分享图片

read (read是bash的内部命令,可以用help read来查看帮助)
-p:“提示信息”
-t:“设置超时时间”

技术分享图片

-z 是判断变量是否为空,是空为真,不空为假
上面表示5秒如果不输内容,自动给a b赋值 100 和1000

实例(选择文档进行归档,并选择想要的归档格式):这样我们就可以更好的和脚本交互了
技术分享图片

脚本如上,测试如下
技术分享图片

脚本编程三种控制结构:
顺序结构
选择结构
if
if ;then
elif
else
fi

case
case $# in
)
statement
;;
esac
循环结构

for
for I in {};do
statement
done
while
while condition;do
statement
done
until

接下来讲一下while循环
while ture; do
done
for循环一般是循环已知的循环,但是while就是适用于循环次数未知的场景

我们的for循环的CONDITION是有个自我修正的,不断的变化的,所以总会有退出循环的时候,而我们的while循环不一样,它是不会自我修正的,如果在statement中没有去处理,那他就一直循环下去

while:循环:适用于循环次数未知的场景
语法:
while CONDITION;do
statement
...
done
计算100以内所以整数的和
[root@www tmp]# cat ./1.txt
#!/bin/bash
declare i I=1
declare i SUM=0
while [ $I -le 100 ] ;do
let SUM+=$I
let I++ 这种情况下就需要在while循环内让条件不循环,这个就是遍历循环,必须要有这一种条件,不然会一直死循环
done
echo $SUM

当输入quit就退出,否则就将输入变成大写的再输出来
#!/bin/bash
read -p "input zimu:" NUM
while [ ! $NUM == ‘quit‘ ];do
echo $NUM | tr ‘a-z‘ ‘A-Z‘
read -p "input zimu:" NUM
done

检测hadoop有没有登录,如果没有登录,一直跳出信息来说Hadoop没登录,直到Hadoop登录为止

技术分享图片

所以要明白循环的进入条件和退出条件的意义了
[root@www tmp]# vim checkuser1.sh
#!bin/bash

who | grep "user1" &>/dev/null
jieguo=$?

while [ $jieguo -ne 0 ];do
echo "user1 is not logging"
sleep 1
who | grep "user1" &>/dev/null
jieguo=$?
done
echo "user1 is logged in."

7、read的使用和while循环

标签:read while循环

原文地址:http://blog.51cto.com/425319153/2092861

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!