实验21报告:Shell脚本统计文件与目录数量及字节数;回文字符串检测。

需积分: 0 0 下载量 110 浏览量 更新于2024-01-27 收藏 5.39MB PDF 举报
在本次实验中,我完成了两个题目的设计和实现,同时也遇到了一些问题,并采取了相应的解决方法。下面是我对这次实验的讨论和心得总结。 首先,我完成了第一个题目的设计。该题目要求编写一个shell脚本,统计指定目录下的普通文件、子目录及可执行文件的数目,并统计该目录下所有普通文件字节数总和。我首先通过参数传入目录的路径名,并使用find命令在该目录下搜索普通文件、子目录和可执行文件,然后使用wc命令统计它们的数量。为了统计普通文件字节数总和,我使用了du命令,并通过管道将结果传递给awk命令来进行求和。最后,我将结果输出并保存为截图。 在实现过程中,我遇到了一些问题。首先,当我在脚本中使用find命令时,我忘记指定参数来限制搜索的对象。为了解决这个问题,我查阅了相关的帮助文档,并将正确的参数添加到了find命令中。其次,在使用du命令时,我没有正确理解其输出结果的格式,导致我无法使用awk命令对字节数进行求和。为了解决这个问题,我重新查阅了du命令的帮助文档,并找到了正确的输出格式选项。通过这些问题的解决,我最终成功完成了第一个题目的设计和实现。 接下来,我完成了第二个题目的设计。该题目要求编写一个shell脚本,输入一个字符串,并忽略(删除)非字母后,检测该字符串是否为回文。我首先通过read命令获取用户输入的字符串,并使用sed命令删除其中的非字母字符。然后,我使用rev命令将删除非字母字符后的字符串进行反转,并通过if语句判断反转后的字符串是否与原字符串相同。最后,我输出判断结果并保存为截图。 在实现过程中,我遇到了一些问题。首先,我在使用sed命令时,没有正确指定删除非字母字符的正则表达式模式。为了解决这个问题,我查阅了相关的帮助文档,并使用正确的模式进行了修改。其次,在使用if语句进行判断时,我忘记加上条件判断符号“-eq”。为了解决这个问题,我仔细检查了if语句的语法,并进行了修改。通过这些问题的解决,我最终成功完成了第二个题目的设计和实现。 通过这次实验,我学习了Bourne shell的shell脚本的基本概念,并学会了shell程序的执行方法。通过编写脚本,我也掌握了编写Bourne shell脚本程序的方法。同时,我在实验过程中遇到了一些问题,但通过查阅相关文档和仔细思考,我成功地解决了这些问题。通过这次实验,我不仅学到了知识,还培养了解决问题的能力。通过撰写实验报告,我巩固了实验内容,并提高了文档编写的能力。 总之,通过这次实验,我增加了对shell脚本的理解和掌握,并学会了编写和执行shell程序的方法。同时,我也在实验过程中遇到了一些问题,但通过查阅文档和思考解决了这些问题。我相信这次实验对我的学习和提高具有很大的帮助和意义。