实验三 shell 脚本实验
一、实验目的 1.掌握bash的基本语法。 2.掌握bash的建立和执行方式。 3.熟悉shell脚本编程。 二、实验内容 1.编写Shell脚本文件,该文件的功能:从键盘输入年月,然后自动显示该年份下该月的日历,然后再显示系统当前的日期和时间。要求用3种不同方式执行该脚本。(3分) 参考程序: $vi mycal(进入vi环境输入下列脚本程序) echo “Please input year:” read year #从键盘读入年份给year变量 echo “Please input month:” read month #从键盘读入月份给month变量 cal $month $year date :wq!回车(保存文件并退出vi) 【实验三 Shell 脚本实验】 实验的目标是让学生熟练掌握Bash的基本语法,了解如何建立和执行Shell脚本,并熟悉Shell脚本编程。实验内容包括编写三个不同的Shell脚本,每个脚本都有特定的功能: 1. **日历显示脚本**:用户从键盘输入年份和月份,脚本会显示指定年份的指定月份的日历,以及当前的日期和时间。参考程序如下: - 使用`vi`编辑器创建名为`mycal`的文件。 - 在文件中,通过`echo`命令提示用户输入年份和月份,`read`命令读取用户的输入并存储到变量`year`和`month`。 - 使用`cal`命令显示指定年月的日历,`date`命令显示当前日期和时间。 - 脚本的执行方式有三种: - 输入定向到脚本(`$bash<mycal`),但这种方式无法从键盘接收参数。 - 将脚本名作为`bash`的参数(`$bash mycal`)。 - 设置脚本的执行权限(`$chmod a+x mycal`),将其添加到命令搜索路径中,然后直接运行(`$mycal`)。 2. **参数求和脚本**:此脚本从命令行接收数值参数,并计算这些参数的和。参考程序如下: - 初始化累加器变量`x`为零。 - 使用`for`循环,通过`$*`获取所有位置参数,计算表达式`x+y`并将结果累加到`x`。 - 循环结束后,输出参数的总和。 3. **简单菜单脚本**:创建一个包含多个选项的命令菜单,根据用户选择执行相应操作,如显示当前日期时间、登录用户、工作目录名或目录内容,直至用户选择退出。参考程序如下: - 使用`while`循环保持菜单持续显示,`case`结构根据用户输入执行相应命令(`date`、`who`、`pwd`、`ls`)。 - 用户输入无效时,会提示重新输入。 4. **最大最小数脚本**:从命令行接收5个数,找出并显示其中的最大数和最小数。可以通过类似以下方式实现: - 使用`read`命令读取命令行的5个参数,分别存储到5个变量中。 - 使用`while`循环和嵌套的`if`判断语句,比较每个数与当前已知的最大值和最小值,更新这两个值。 - 循环结束后,输出最大值和最小值。 通过这些实验,学生不仅能掌握Bash的基本操作,还能了解到如何处理用户输入、控制流程、调用系统命令以及进行简单的数据处理。这对于日常系统管理、自动化任务和脚本编写具有实际应用价值。