第十章学习笔记

自学教材第10章,提交学习笔记(10分)

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

知识点归纳以及自己最有收获的内容 (3分)

问题与解决思路(2分)

实践内容与截图,代码链接(3分)

...(知识的结构化,知识的完整性等,提交markdown文档,使用openeuler系统等)(2分)

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

语法,语义,类库~~~这就是一门语言~
得到数据,处理数据,发出数据~~~这就是一个函数~
一门程序设计语言,作为语言,需要先掌握语法语义类库,并加上不同函数的组合,就能实现各种功能。数据结构和函数库的调用可以实现功能更加丰富,性能更加强大的程序。
shell脚本中变量均为字符串,经过选择、循环、函数的调用即可完成不同种功能。通过对本章节的学习,我认为将sh与c结合对比学起来效率更高,当然也需要对着示例亲手敲代码才能较牢固的掌握理解。

知识点归纳:

sh脚本:一个包含sh语句的文本文件,命令解释程序sh要执行该语句。
sh:一个解释程序,逐行读取sh脚本文件并直接执行这些行。变量类型:字符串。

命令行参数
$# = the number of command-line parameters $1 to $n
$* = ALL command-line parameters, including $0
In addition, sh also has the following built-in variables related to command executions.
$$ = PID of the process executing the sh
$? = last command execution exit status (0 if success, nonzero otherwise)

sh内置变量:PATHHOMETERM

变量设置与赋值示例:

特殊字符的打印:前面加 \ or ‘ ’

sh语句:包括所有Unix/Linux命令,以及可能的I/O重定向

常用的内置命令:

Read命令:当sh执行read命令时,它会等待来自stdin的输入行。

Linux命令:

  1. echo命令:将参数字符串作为行回显到stdout。通常将相邻的多个空格压缩为一个空格。

  2. expr命令:因为所有的sh变量都是字符串,所以我们不能直接把它们改为数值,可调用expr程序改变变量的<数值>
    expr string1 op string2

  3. 管道命令:在sh脚本中经常使用管道作为过滤器

实用命令:

命令替换:echo $(cmd), $A会被替换成A的值

sh控制语句

if-else-fi:

for:

while:

until-do:

case:

continue:As in C, continue restarts the next iteration of the nearest loop and break exits the nearest loop. They work exactly the same as in C

通配符

file *:列出当前目录中所有文件的信息
ls *.c:列出当前目录中所有以.c结尾的文件
file ???:有3个字符的所有文件名
ls *.???:一个点号,后有两个字符的所有文件名
[]:查询文件名中一对[]中的字符

调试sh脚本则由带有-x选项的子sh运行

I/O重定向

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

sh函数

func()
{
     #function code
}

sh调试

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

sh应用

sh脚本最常用于执行涉及冗长命令序列的常规作业。如:Linux安装包是用sh脚本编写的,安装过程中可与用户交互
脚本简化重复的工作

问题与解决思路:

设置断点时,将其设置在while循环中p==3的位置时候,出现function not defined 的情况
解决方法:gdb条件调试一般应用在循环、链表的遍历、或者其他变量的值可能被多次改变的场合。我在条件变量p的作用域外设置断点,这样会导致断点设置无效,应该对链表设置的值while p->next进行判断。

posted @ 2021-09-25 14:51  pogbar  阅读(61)  评论(0编辑  收藏  举报