2023-2024-1 20211306 密码系统设计与实现课程学习笔记3

20211306 密码系统设计与实现课程学习笔记3

学习任务详情

自学教材第10章,提交学习笔记
大家学习过Python,C,Java等语言,总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如果呈现出来的?

  1. 知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容

“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”
核心是要求GPT:“请你以苏格拉底的方式对我进行提问”
然后GPT就会给你提问,如果不知道问题的答案,可以反问AI:“你的理解(回答)是什么?
如果你觉得差不多了,可以先问问GPT:“针对我XXX知识点,我理解了吗?”
GPT会给出它的判断,如果你也觉得自己想清楚了,可以最后问GPT:“我的回答结束了,请对我的回答进行评价总结”,让它帮你总结一下

  1. 问题与解决思路,遇到问题最先使用chatgpt等AI工具解决,并提供过程截图
  2. 实践过程截图,代码链接
  3. 其他(知识的结构化,知识的完整性等,提交markdown文档,使用openeuler系统等)

一、第十章(sh编程)学习总结

摘要
本章讨论sh编程,阐述了sh脚本和不同版本的sh,比较了sh和C程序,说明了如何编写sh脚本,包括其变量、语句、内置命令、常规系统命令和命令替换,解释了sh控制语句并示范其用法。

  • sh脚本

一个包含sh语句的文本文件,命令解释程序sh要执行语句,我们可以创建一个文本文件

使用chmod+x mysh执行。
sh脚本第一行通常是#!组合开始

  • sh脚本与C程序

sh脚本与C程序有相似之处,但在根本上是不同的

sh是一个解释程序,逐行读取并执行,而C程序必须先编译到一个二进制可执行文件;sh中每个变量都是字符串,而C程序每个变量必须有一个类型;C程序必须有一个main()函数,而sh第一个可执行语句就是程序的入口处。

  • 命令行参数

可使用与运行sh命令完全相同的参数调用sh脚本,如:mysh one two three

在sh脚本中,可以通过位置参数$0等访问命令行参数,前十个可用\(0~9,其他必须\){10~n},n>10。

在sh中,\(表示替换,要按原样使用\),必须加\或者''。

  • sh变量

许多内置变量:PATH、HOME、TERM等,不需声明,sh变量可以用以下方法设置或者赋值

  • sh中的引号

sh有许多特殊字符,如$、/、*、>、<等

  • sh语句

  • sh命令
  • 内置命令

sh有许多内置命令,由sh执行,不需要创建新进程

  • Linux命令

sh可以执行所有的Linux命令

  • 命令替换

  • sh控制语句
  • if-else-if 语句


每个语句必须带单独的一行上,但是多个语句之间用分号分开时,sh允许多个语句在同一行

  • if-elif-else-if复合语句


  • for 语句

类似C语言中的for循环

  • while语句


  • until-do语句

  • case语句

  • continue和break语句

与在C语言中一样,continue重启最近循环的下一个迭代,break退出最近循环。与在C语言中完全相同。

  • I/O重定向

当进入sh命令时,我们可以指示sh将I/O重定向到除默认stdin、stdout和sterr以外的文件。

  • 嵌入文档

可以指示输出命令从stdin获取输入,将其回显到stdout,知道遇到预先安排的关键字

  • sh函数


  • sh中的通配符
  • 星号通配符:sh中最有用的通配符是*,可扩展到当前目录中的所有文件
  • ? 通配符:查询某文件名中的字符
  • []通配符:查询文件名中一对[]中的字符
  • 命令分组

在sh脚本中,可以用{}或()对命令进行分组。

  • eval语句


  • 调试sh脚本

sh脚本可由带有-x选项的子sh运行以进行调试,如:bash -x mysh

  • sh脚本的应用

  • 实际操作

简单的sh脚本:“Hello World!”

计算两个数字之和

简单的for循环使用

命令行参数调用

sh脚本变量的使用

简单if语句使用

二、苏格拉底提问GPT












三、Linux代码运行

  • makefile实现



四、问题解决


posted @ 2023-09-24 17:42  20211306丁文博  阅读(7)  评论(0编辑  收藏  举报