shell 流程控制

2018-01-03  本文已影响0人  碎玉长青

条件判断

if 单支流程控制

语法:

if   [ 条件 ]
then
      指令
fi      #结束语句

双分支 if 语句

语法

if  [ 条件 ]
      then
          指令二
      else
          指令二
       fi

实例

read -p "input name : "   username
if [ "${username}" == "luban"  ]
then
       echo "login  success"
 else 
        echo  "login  failed"
fi

多分支if

语法

if [ 条件1 ]
then 
    指令1
elif [ 条件2 ]
then
    指令2
else
    指令3
fi

实例

#!/bin/bash
# 多if语句的使用场景
if [ "$1" == "start" ]
then
   echo "服务启动中..."
elif [ "$1" == "stop" ]
then
   echo "服务关闭中..."
elif [ "$1" == "restart" ]
then
   echo "服务重启中..."
else
   echo "$0 脚本的使用方式: $0 [ start | stop | restart ]"
fi

case 语句

语法

case  变量名  in
        值1)
            指令1
             ;;
        值2)
             指令2
             ;;
        值3)   
             指令3
             ;;
        exac

实例

read -p "input name : " username
case "${username}"  in
        "luban")
              echo  "success"
               ;;
         "qihao")
               echo  "success"
               ;;
          *)   # 当前面条件都不符合,用* 匹配任意非分支的选择
                echo "failed"
                ;;
        exac

循环

for 循环

语法

for 值 in 列表
do
   执行语句
done

注意:

”for” 循环总是接收 “in” 语句之后的某种类型的字列表
执行次数和list列表中常数或字符串的个数相同,当循环的数量足够了,就自动退出
对于固定次数的循环,可以通过seq命令来实现,就不需要变量的自增了

实例(命令)

#!/bin/bash
#  遍历当前目录
for file in $(ls)
do
      echo "file name : ${file}"
done

实例(列表)

#!/bin/bash
num = $(seq 10)      # 生成一个数组从1~10
for i in "${num}"
do 
      echo  "${i}"
done 

while

语法

while 条件
do
   执行语句
done

实例

#!/bin/bash
cou = 0
while [ $cou  -le  5 ]
do 
    echo  "${cou}"
    coun = $((cou + 1))
done
上一篇 下一篇

猜你喜欢

热点阅读