流程控制语句(bash)

1.if控制语句   if then fi     if then else fi    if then elif then elif then ······ else fi
if  条件表达式
then 命令序列(满足条件才执行) #注意,如果if与then(elif与then)写在同一行,要用;隔开)  
fi

if  条件表达式;then 
命令序列
fi  

if  条件表达式
then  命令序列1(条件满足)
else  命令序列1(条件不满足)
fi

if  条件表达式1
then  命令序列1
elif 条件表达式2
then  命令序列2
······
else  命令序列(以上条件均不满足)
fi

#!/bin/bash                                      # ex.sh
read -p "Enter your score(0-100): " GRADE      # read命令
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ;then 
echo "$GRADE is Excellent"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ]
then echo "$GRADE is pass"
elif [ $GRADE -gt 100 ]
then echo "$GRADE is error"
elif [ $GRADE -lt 0 ]
then echo "$GRADE is error"
else
echo "$GRADE is fail"
fi                                             bash ex.sh    sh ex.sh    ./ex.sh

2.for控制语句
for 变量名 in 控制列表  
do
   命令序列
done

# vim name.txt  #每行只有一个用户
andy
barry
carl
sjd

#!/bin/bash                                        #user.sh
read -p "Enter the users password: " PASSWD  #读取密码,所有用户的密码设置相同 
for NAME in `cat name.txt`
do
   id $NAME &> /dev/null
   if [ $? -eq 0 ]
   then 
      echo "Already exists"
   else 
      useradd $NAME &> /dev/null
      echo "$PASSWD" | passwd --stdin $NAME &> /dev/null
      if [ $? -eq 0 ]
      then 
         echo "$NAME, create success"
      else 
         echo "$NAME, create failure"
      fi
   fi
done        bash user.sh   tail -n 4 /etc/passwd  查看新建用户信息  for NAME in `cat name.txt`  等
价于 for NAME in $(cat name.txt)   或者: EH= $(cat name.txt)   for NAME in $EH

3.while控制语句
while 条件表达式
do
   命令序列
done

#!/bin/bash                                  #guess.sh
PRICE=$(expr $RANDOM % 1000)     #或者  PRICE=`expr $RANDOM % 1000`
TIMES=0
echo "商品实际价格为0~999之间,猜猜看是多少?"
while true
do
   read -p "please input the value that you guess: " GU
   let TIMES++
   if [ $PRICE -eq $GU ]
   then echo "congratulations! your guess is accurate which is $PRICE"
        echo "the times that you guess is $TIMES"
        exit 0
   elif [ $GU -gt $PRICE ]
   then echo "your guess is bigger"
   else
        echo "your guess is lower"
   fi
done        bash guess.sh         $RANDOM为环境变量,系统随机产生一个随机数(范围为0~32767)。使用
expr命令取得后面表达式的结果。exit 0 跳出while循环。

4.case控制语句
case 变量值 in
模式1)
   命令序列1
;;
模式2)
   命令序列2
;;
······
*)
   默认命令序列
esac
当变量指都不符合以上的模式时,则执行默认命令序列。

#!/bin/bash                                          #exw.sh
read -p "please input a character: " KU
case $KU in
[a-z])
   echo "你输入的是字母!"
;;
[0-9])
   echo "你输入的是数字!"
;;
*)
   echo "你输入的是其它字符!"
esac       [a-z]  可以匹配所有大小写字母,并不仅仅只是小写字母,与上面矛盾(经试验证明)

5.计划任务服务程序
在指定的时间段自动启用或停止某些服务或命令,从而实现运维的自动化。
一次性计划任务:如今晚11:30开启网站服务   at 时间   设置一次性计划任务    at -l 查看还未执行的一次性计划任务   atrm 任务序号 删除对应的还未执行的一次性计划任务    # at 11:30    systemctl restart httpd   Ctrl+D组合键来结束计划任务的编写   这是采用交互的方式来实现一次性计划任务,可以利用管道符来直接实现: echo "systemctl restart httpd" | at 11:30    即可    然后就可以用at -l命令查看

长期性计划任务:如每周一3:25分把/home/luciusvorenus目录打包备份为backup.tar.gz          crontab -e 创建、编辑计划任务书   crontab -l 查看计划任务   注意:每一行只能写一条计划任务,且命令必须采用绝对路径的方式书写,如:/uer/bin/rm     可用whereis 或which命令查看  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值