Shell流程控制

2020-02-09  本文已影响0人  村东头老骥

Shell流程控制

简单流程控制语句

单分支if语句

语法格式

if [ 条件 ] 
then
    指令 
fi

#!/bin/bash
# 单if演示
# 定义一个本地变量,用于接受脚本执行时候的参数
a="$1"
if [ "${a}" == "man" ]
then
    echo "您的性别是男"
fi

双分支if语句

语法格式

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

a="$1"

if [ "${a}" == "nan" ]
then
    echo "您的性别是男"
else
    echo "您的性别是女"
fi

多分支if语句

语法格式

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

a="$1"

if [ "${a}" == "nan" ]
then
    echo "您的性别是男"
elif [ "${a}" == "nv" ]
then
    echo "您的性别是女"
else
    echo "您的性别暂时不知道"
fi

case选择语句

语法格式

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

a="$1"

case "${a}" in 
    "start")
        echo "服务器启动中"
        ;;

    "stop")
        echo "服务器关闭中"
        ;;
    "restart")
        echo "服务器重启中..."
        ;;
    *)
        echo "$0 脚本的使用方式": $0 [start|stop|restart]
        ;;
esac

注意 :

for循环

语法格式

for 值 in 列表
do 
    执行语句
done

#!/bin/bash

for i in $(ls /root)
do
    echo "${i}"
done
// ------------------------------
# bash for.sh 
master.zip
oldCode
software
test.py
vim.txt
workspace

while 循环语句

语法格式

while 条件 
do 
    执行语句
done

#!/bin/bash
a=1
while [ "${a}" -lt 5 ]
do
    echo "${a}"
    a=$((a+1))
done

注意 : 条件的类型
命令、[[ 字符串表达式 ]]、(( 数字表达式 ))

until循环 语句

使用场景 : 只要条件不满足的时候,就一直循环下去

语法格式

until 条件 
do 
    执行语句 
done

#!/bin/bash
a=1
until [ "${a}" -eq 5 ]
do 
    echo "${a}"
    a=$((a+1))
done

Shell函数

定义函数以及调用函数

函数名(){ 
    函数体
 }
// 调用函数
函数名

#!/bin/bash

# 定义函数
sayHello(){
    echo "hello word"
}

# 调用函数
sayHello

# 传入参数
函数名 参数
# 函数体调用参数
函数名(){ 
  函数体 $n 
}

#!/bin/bash

# 定义函数
sayHello(){
        echo "hello word $1"
        echo "hello word $2"
        echo "hello word $3"
}

# 调用函数
# sayHello kevin Tom cat
sayHello $1 $2 $3
上一篇下一篇

猜你喜欢

热点阅读