加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

for、while、case

发布时间:2020-12-14 03:20:03 所属栏目:大数据 来源:网络整理
导读:一、for语句 for 变量名 in 取值列表 do 命令 done 例如: 1)vim /root/user.txt u01 u02 u03 u04 2)vim /root/useradd.sh #!/bin/bash for i in cat /root/user.txt do useradd $i done 3)vim /root/useradd_1.sh #!/bin/bash for i in {1..100} do useradd
一、for语句

for 变量名 in 取值列表

do

命令

done

例如:

1)vim /root/user.txt

u01
u02
u03
u04

2)vim /root/useradd.sh

#!/bin/bash

for i in cat /root/user.txt

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=expr $RANDOM % 1000
TIME=0

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(){
echo "xxx is start"
}

b(){
echo "xxx is stop"
}

c(){
echo "$0 is start | stop"
}
case $1 in

start)a;;stop)b;;*)c;;esac

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读