Linux Shell学习:条件选择与功能菜单实现

0 下载量 198 浏览量 更新于2024-08-31 收藏 99KB PDF 举报
在Linux Shell学习笔记的第三天,你深入探讨了条件选择在脚本编程中的应用。这一部分主要关注三个核心概念:条件测试、`if...else...fi`结构以及`case...in...esac`语句。 1. **条件测试**: - `if...else...fi`结构是基础,它用于根据条件执行不同的命令。例如,你可以使用`test`命令或者直接评估命令的返回值来测试一个条件,如文件存在(-e)、大小(-s)、类型(-f, -d, -r, -w, -x)等。这些选项可以帮助你验证变量或路径的状态。 2. **`case...in...esac`**: 这是一种更灵活的条件匹配工具,适用于多个可能的选择。它允许你根据输入值匹配不同的`case`分支,并执行相应的代码块。这对于创建交互式的菜单系统非常有用,如脚本中提到的显示时间、CPU负载和内存等。 3. **功能菜单实现**: 通过`case`语句,你构建了一个脚本功能菜单,用户输入对应数字来触发不同的操作。比如,按1显示当前时间(`date +%T`),按2获取CPU负载(`uptime awk`截取),按3查看剩余内存(`free -m`),而按0则退出脚本。 4. **逻辑操作符**: 在条件测试中,逻辑操作符如`-a`(与)和`-o`(或)用于组合多个条件,而`!`(非)用于否定一个条件。例如,`test -e /etc/passwd -a -e /etc/shadow`会检查两个文件同时存在,而`test -e /etc/passwd -o -e /etc/groups`则只要一个文件存在即为真。 5. **字符串和数值比较**: 字符串比较操作符包括`==`(等于)、`!=`(不等于),空字符串检查用`-z`,非空字符串用`-n`。数值比较有`-eq`(等于)、`-ne`(不等于)、`-gt`(大于)、`-lt`(小于)、`-ge`(大于等于)和`-le`(小于等于)。这些帮助你精确地判断变量的值。 6. **实例演示**: 课程中还提供了两个实例:一个是`inputtest.sh`脚本,它使用`if...else...fi`结构判断用户输入,如果输入为空,则显示错误消息;否则,显示输入的姓名。另一个实例展示如何利用条件测试来决定执行哪些命令。 通过这一天的学习,你应该对Linux Shell中的条件选择有了更深的理解,能够编写出基于用户输入、环境状态进行决策的实用脚本。继续深入实践,将理论转化为实际技能,是提升Shell编程能力的关键。