shell脚本的流程控制详解

#头条创作挑战赛#

1.if条件判断

基本用法

# 用法1
if [ 条件判断式 ];then
 代码块
elif [];then
fi

# 用法二
if [ 条件判断式 ]
 then
 代码块
elif []
 then
 程序
fi

# 高级用法 使用双圆括号,可以在条件中植入数学表达式
if (( (5+5)*3 > 10 )) ;then
	代码
fi
# 注意事项:
1.[ 条件判断 ] ,中括号和条件判断式之间必须要有空格
2.if后面要有空格

代码实现

#!/bin/bash

# 定义一个变量
number=10

# 使用if语句进行条件判断
if [ $number -gt 15 ]; then
 echo "The number is greater than 15."
elif [ $number -gt 10 ]; then
 echo "The number is greater than 10 but not greater than 15."
else
 echo "The number is not greater than 10."
fi

2.for循环

基本用法

for var in 列表|数组
do
 程序
done

for循环有几种不同的赋值方式

  • 直接赋值
  • 赋值来自一个范围
  • 赋值来自命令产生的结果
  • 不带列表,由用户指定
  • 从数组中遍历
echo "直接赋值"
for var in 1 2 3 4 5
do
 echo "$var 
"
done

echo "列表赋值"
for var in {1..10}
do
 echo "$var 
"
done

echo "列表赋值带步长"
for var in {1..10..2}
do
 echo "$var 
"
done

echo "列表赋值带步长,反向"
for var in {10..1..-2}
do
 echo "$var 
"
done

echo "命令赋值"
for var in `seq 10 -2 1`
do
 echo "$var 
"
done

echo "不带列表,由用户指定"
for var
do
 echo "$var 
"
done
echo "用户输入了$#个参数"

echo "从数组中遍历"
arr=(1 2 3 4 5)
for var in "${arr[@]}"
do
 echo $var
done

3.while循环

基本用法

# 用法1
while [ 表达式 ]
do
 程序
done

# 用法二
while 【 判断式 】 或者(( 1 > 2))
do
 程序
done

4.case选择

基本用法

casein
 模式1)
 # 值匹配模式1时执行的代码
 ;;
 模式2)
 # 值匹配模式2时执行的代码
 ;;
 ...
 模式N)
 # 值匹配模式N时执行的代码
 ;;
 *)
 # 如果所有模式都不匹配时执行的代码
 ;;
esac

案例

#!/bin/bash

# 提示用户输入季节名称
echo "请输入一个季节名称(例如:spring、summer、autumn、winter):"
read season

# 使用case语句根据季节名称进行选择
case $season in
 "spring")
 echo "春天是万物复苏的季节,花开花落,气温逐渐回暖。"
 ;;
 "summer")
 echo "夏天是炎热的季节,阳光明媚,适合游泳和户外活动。"
 ;;
 "autumn")
 echo "秋天是丰收的季节,天空湛蓝,果实累累。"
 ;;
 "winter")
 echo "冬天是寒冷的季节,大地白雪皑皑,气温较低。"
 ;;
 *)
 echo "无法识别的季节名称,请输入正确的季节。"
 ;;
esac
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
狼生的头像 - 鹿快
评论 共1条

请登录后发表评论