9 Shell脚本中的选择结构与跳转语句

在之前的章节中,我们讨论了控制结构中的循环结构(forwhileuntil),了解了如何在Shell脚本中实现重复执行某些操作。在本篇中,我们将专注于另一类重要的控制结构——选择结构与跳转语句。这些控制结构允许我们根据条件的不同来执行不同的代码块,或者跳转到脚本中的其他位置。

选择结构

选择结构使得程序能够根据给定条件不同而选择执行不同的命令。在Shell脚本中,最常用的选择结构是 if 语句和 case 语句。

1. if 语句

if 语句是用来根据测试条件的结果来决定是否执行某块代码的基本结构。基本语法如下:

1
2
3
4
5
6
7
if [ condition ]; then
# statements
elif [ another_condition ]; then
# statements
else
# statements
fi

示例

以下示例展示了使用 if 语句根据用户输入的数字输出不同的消息:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash

echo "请输入一个数字:"
read number

if [ $number -gt 0 ]; then
echo "您输入的数字是正数。"
elif [ $number -lt 0 ]; then
echo "您输入的数字是负数。"
else
echo "您输入的数字是零。"
fi

2. case 语句

如果需要基于一个变量的多个值来选择执行的代码块,case 语句是一个更好的选择。它的基本语法如下:

1
2
3
4
5
6
7
8
9
10
11
case variable in
pattern1)
# statements
;;
pattern2)
# statements
;;
*)
# default statements
;;
esac

示例

下面是一个使用 case 语句的示例,根据输入的星期几输出相应的消息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash

echo "请输入一个星期几(1-7):"
read day

case $day in
1)
echo "今天是周一。"
;;
2)
echo "今天是周二。"
;;
3)
echo "今天是周三。"
;;
4)
echo "今天是周四。"
;;
5)
echo "今天是周五。"
;;
6)
echo "今天是周六。"
;;
7)
echo "今天是周日。"
;;
*)
echo "输入无效,请输入1到7之间的数字。"
;;
esac

跳转语句

跳转语句用于在脚本中控制流程,可以让我们在符合特定条件时跳过某些代码块或退出脚本等。Shell中常见的跳转语句包括 breakcontinueexit

1. break

break 用于退出循环结构。你可以在 forwhileuntil 循环中使用 break 来提前结束循环。

示例

下面的示例展示了如何使用 break 退出一个循环:

1
2
3
4
5
6
7
8
9
#!/bin/bash

for i in {1..10}
do
if [ $i -eq 5 ]; then
break
fi
echo "当前数字是:$i"
done

输出将为:

1
2
3
4
当前数字是:1
当前数字是:2
当前数字是:3
当前数字是:4

2. continue

continue 用于跳过当前循环中的剩余代码,直接开始下一次循环。

示例

以下示例在循环中跳过偶数并只输出奇数:

1
2
3
4
5
6
7
8
9
#!/bin/bash

for i in {1..10}
do
if [ $((i % 2)) -eq 0 ]; then
continue
fi
echo "当前是奇数:$i"
done

输出将为:

1
2
3
4
5
当前是奇数:1
当前是奇数:3
当前是奇数:5
当前是奇数:7
当前是奇数:9

3. exit

exit 用于终止脚本的执行,并且可以选择性地返回一个退出状态。使用 exit 可以将一个状态码返回给调用者,状态码通常用于表示脚本的执行结果。

示例

下面是一个使用 exit 的实例:

1
2
3
4
5
6
7
8
9
#!/bin/bash

echo "开始脚本执行"
# 在这里模拟一个错误
if [ ! -f "somefile.txt" ]; then
echo "文件不存在,终止脚本。"
exit 1
fi
echo "继续执行脚本"

当运行这个脚本而没有 somefile.txt 文件时,它会输出文件不存在的信息并以状态码 1 退出。

总结

在本篇中,我们探讨了 Shell 脚本中的选择结构 ifcase 以及跳转语句 breakcontinueexit。通过正确地使用这些控制结构,您可以编写出灵活而高效的脚本,能够根据不同的条件或状态执行特定的代码。这些基本的控制结构为后续学习 Shell 脚本中的函数与变量打下了良好的基础。

9 Shell脚本中的选择结构与跳转语句

https://zglg.work/shell-scripting-zero/9/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论