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."