20211301《Unix/Linux系统编程》学习笔记3
学习目标
-
总结一下一门程序设计语言有哪些必备的要素和技能?
-
这些要素和技能在shell脚本中是如果呈现出来的?
教材知识总结
10.1 sh脚本
-
定义:sh脚本是一个包含sh语句的文本文件、命令解释程序sh要执行该语句
-
sh:sh是解释程序,逐行读取sh脚本文件并执行这些行; sh只有字符串,无类型 ;无main函数
-
c程序:必须先编译链接到一个二进制可执行文件,然后通过主sh的子进程运行二进制可执行文件
-
命令行参数: 可使用
mysh one two three
调用sh脚本 -
在sh脚本中可用内置变量$#、$*计数并显示命令行参数
-
sh变量:内置变量(PATH、HOME、TERM)、任何符号都可作为sh变量
-
sh变量设置与赋值
-
sh语句:包括所有linux命令以及可能得IO重定向
10.2 sh命令
-
内置命令
-
read命令:当sh执行read命令,他会等待stdin的输入行,将其划分为几个标记,分配给列出的变量,允许用户与正在执行的sh进行交互
-
linux命令
expr:更改sh变量为数值
I = ${expr $I + 1} # I=I+1
管道命令: 过滤器
其他:
- 控制语句:for ,if ,while ,until-do ,case ,continue和break
10.3 其他
-
嵌入文档
-
应用:与makefile不同,简单的编译链接任务可由sh脚本来执行
代码实现
1. mysh文件执行
-
创建文本文件
-
chmod +x mysh
使其可执行,然后运行 -
sh命令行参数
2. makefile
-
创建makefile
-
运行
-
清除.o文件
苏格拉底提问
- makefile
- sh
问题与解决方案
-
问题一:makefile命令无法使用,出现报错
-
问题一解决方法:因为代码是从上课的笔记复制过来的,复制后缩进不是tab而是四个空格,而且冒号是中文的冒号,修改后程序可正常运行