shell编程之进阶篇四简单流程控制

简单流程控制语句

单分支if语句

语法格式

if [ 条件 ]
then
  	指令
fi

场景:
单一条件,只有一个输出

  • 单分支if语句示例
#!/bin/bash
# 单if语句的使用场景
if [ "$1" == "nan" ]
then
   echo "您的性别是 男"
fi

双分支if语句

语法格式

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

场景:
一个条件,两种结果

  • 双分支if语句示例
#!/bin/bash
# 单if语句的使用场景
if [ "$1" == "nan" ]
then
   echo "您的性别是 男"
else
   echo "您的性别是 女"
fi	

多分支if语句

语法格式

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

场景:
n个条件,n+1个结果

  • 多分支if语句示例
#!/bin/bash
# 单if语句的使用场景
if [ "$1" == "nan" ]
then
   echo "您的性别是 男"
elif [ "$1" == "nv" ]
then
   echo "您的性别是 女"
else
   echo "您的性别,我不知道"
fi


多if语句生产场景: 服务的启动
需求:
要求脚本执行需要有参数,通过传入参数来实现不同的功能。

参数和功能详情如下:

参数 执行效果
start 服务启动中…
stop 服务关闭中…
* 脚本 使用方式 [ start stop restart ]
#!/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 语句格式

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

注意:
首行关键字是case,末行关键字esac
选择项后面都有 )
每个选择的执行语句结尾都有两个分号;

  • case语句示例
    场景:在多if语句的基础上对脚本进行升级
    需求:
    要求脚本执行需要有参数,通过传入参数来实现不同的功能。

参数和功能详情如下:

参数 执行效果
start 服务启动中…
stop 服务关闭中…
restart 服务重启中…
* 脚本 X.sh 使用方式 X.sh [ start stop restart ]

脚本内容:

# cat case.sh 
#!/bin/bash
# case语句使用场景
case "$1" in					
	"start")					
		echo "服务启动中..."					
		;;					
	"stop")					
		echo "服务关闭中..."					
		;;							
	"restart")					
		echo "服务重启中..."					
		;;					
	*)					
		echo "$0 脚本的使用方式: $0 [ start | stop | restart ]"		
		;;					
esac

for循环语句

循环指定的所有元素,循环完毕之后就推出
语法格式

for 值 in 列表
do
   执行语句
done

场景:
遍历列表

注意:
”for” 循环总是接收 “in” 语句之后的某种类型的字列表
执行次数和list列表中常数或字符串的个数相同,当循环的数量足够了,就自动退出

示例:遍历文件

#!/bin/bash
# for语句的使用示例
for i in $(ls /root)
do
  echo "${i}"
done

while循环语句

语法格式

while 条件
do
   执行语句
done

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

场景:
只要条件满足,就一直循环下去

while语句示例
脚本内容

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

until循环语句

语法格式

until 条件
do
   执行语句
done

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

场景:
只要条件不满足,就一直循环下去

until语句示例
脚本内容

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

猜你喜欢

转载自blog.csdn.net/weixin_43250623/article/details/88779547