7、read的使用和while循环

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

7、read的使用和while循环

下面-n是不换行

7、read的使用和while循环

有时候想要结合echo和read去使用一种颜色的输入显示就可以这样做;如下7、read的使用和while循环

7、read的使用和while循环7、read的使用和while循环

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

7、read的使用和while循环

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

实例(选择文档进行归档,并选择想要的归档格式):这样我们就可以更好的和脚本交互了
7、read的使用和while循环

脚本如上,测试如下
7、read的使用和while循环

脚本编程三种控制结构:
顺序结构
选择结构
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登录为止

7、read的使用和while循环

所以要明白循环的进入条件和退出条件的意义了
[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."

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章