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
注意 :
- 首行关键字是
case
,末行关键字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
网友评论