for、while、case
一、for语句
for 变量名 in 取值列表 do 命令 done 例如: 1)vim /root/user.txt u01 2)vim /root/useradd.sh #!/bin/bash for i in do useradd $i done 3)vim /root/useradd_1.sh #!/bin/bash for i in {1..100} do useradd hehe_$i done 4)vim /root/scan_ip.sh IP=192.168.10. for i in {1..254} do ping -w 1 $IP$i &>/dev/null if [ $? -eq 0 ] then echo "$IP$i is up" else echo "$IP$i is down" fi done 注:for循环,依次将值赋予给变量执行,知道将其值取完毕为止 二、while语句 while [ 条件表达式 ] do 命令 done 例如: A=u0 B=0 while [ $B -le 5 ] do useradd $A$B let B++ done 例如: #!/bin/bash PRE= echo "你猜猜多少,范围为1-999" while true do read -p "输入数字" INT let TIME++ if [ $TIME -eq 3 ] //规定猜测次数为3 then exit 0 fi if [ $INT -eq $PRE ] then echo "你猜对了" echo "你一共猜了$TIME" return 0 elif [ $INT -gt $PRE ] then echo "你猜高了" else echo "你猜低了" fi done 注:while循环语句,通过条检测试语句执行,当满足条件则一直循环,知道不满足为止,跳出循环 三、case语句 case $1 in 模块1) 命令 ;; 模块2) 命令 ;; 模块3) 命令 ;; *) 命令 ;; esac 例如: vim network.sh #!/bin/bash case $1 in start) echo "dovecot is start $(echo -e " 33[32m [ok] 33[0m")" ;; stop) echo "dovecot os stop $(echo -e " 33[32m [ok] 33[0m")" ;; restart) $0 stop $0 start ;; status) netstat -utpln | grep 110 &>/dev/null if [ $? -eq 0 ] then echo "dovecot is start status" else echo "dovecot is stop status" fi ;; *) echo "$0 start | stop | restart | status" ;; esac 注:case语句一般用于服务控制,通过用户输入的不同的参数执行下列的不同命令、 四、函数 将循环重新命令定义为一个函数,可多个地方重复调用 函数名(){ 例: vim /sh/hanshu.sh #!/bin/bash a(){ b(){ c(){ start)a;;stop)b;;*)c;;esac (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |