Unix/Linux系统编程第10章学习笔记
2021/9/26 7:13:03
本文主要是介绍Unix/Linux系统编程第10章学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Unix/Linux系统编程第10章学习笔记
作者:20191322wyl
- Unix/Linux系统编程第10章学习笔记
- 知识点总结与最有收获的内容
- sh脚本
- 命令行参数
- sh变量
- sh中的引号
- sh语句
- sh命令
- 内置命令
- Linux命令
- 命令替换
- sh控制语句
- if-else-fi语句(注意是fi)
- for语句
- while语句
- until-do语句
- case语句
- sh函数
- sh中的通配符
- 命令分组
- eval语句
- 问题
- 1
- 解答:
- 总结程序设计语言有哪些必备的要素和技能
- 知识点总结与最有收获的内容
知识点总结与最有收获的内容
sh脚本
- sh脚本使用chmod +x 文件名执行。(chmod可以赋予文件权限)
- sh脚本中的行是可执行命令且为内置命令,那么sh可直接执行。否则,它会复制一个子进程来执行命令,并等待子进程终止后再继续,这与它执行单个命令行完全一样
- sh中变量只有一个类型,就是字符串
- sh不需要main函数,第一个可执行语句就是程序入口
命令行参数
- 前十个,$0$9,之后的用$(10)$(n),n>10
- $#=命令行参数$1到$n的数量
- $*=所有命令行参数,包括$0
- $S=执行sh的进程pid
- $?=最后一个命令执行的退出状态(如果成功,则为0,否则为非0)
sh变量
- sh变量不用声明,未赋值的sh变量为NULL字符串
- 如果A是一个变量,则$A是变量A的值(未赋值情况下为NULL)
- 使用“=”给变量赋值
sh中的引号
与转义字符“\”一样,加上后就没了特殊含义,就是一个普通字符串
sh语句
sh命令
内置命令
sh的内置命令由sh执行,不需要创建一个新的进程
read命令:read命令可以获取输入的字符串
Linux命令
sh可以执行所有的linux命令
-
echo命令:打印字符串,没有引号的情况下不管多少个空格都会压缩为一个空格
-
expr命令:
一般的代码
i=“i”+1
是将i的值变成了“i+1”expr string1 OP string2
,将string1和string2转换为数字再进行op操作,最后再转换为字符串例:
expr $i + 1
就实现了上面的操作 -
管道命令
使用管道命令作为过滤器
-
实用命令:
命令替换
当sh遇到“命令”或$(命令)时,会先执行命令,然后将执行结果字符串替换到$(命令)
sh控制语句
与C语言类似
if-else-fi语句(注意是fi)
每个语句必须在同一行上,但是如果多个语句之间用“;”隔开,则允许在同一行。
sh中,0为真,非0为假
if-elif-else-fi:与C语言中用法类似
for语句
while语句
until-do语句
类似于C语言中的do-until语句
case语句
在sh中很少使用
sh函数
sh函数的定义为
func() { #function code }
执行语句:func s1 s2 s3....sn
sh中的通配符
- 星号通配符*:扩展到当前目录下的所有文件
- ?通配符?:查询某文件名中的字符
- []通配符:查询文件名中一对[]中的字符
命令分组
可使用{}或()对命令进行分组,在相同环境下执行同一组的命令
eval语句
eval [arg1 arg2....]
eval会先扫描需要执行的命令,将其中可替换的内容替换掉,再执行命令
问题
1
eval会替换命令的值,那如果我用eval运行cat file(某一个文件会怎么样)?
解答:
当我们把cat file直接赋予myfile变量后,我们直接echo myfile的内容将不会输出我们在file文件里面的文本。然后当我们用eval命令后,就会输出我们想要的内容。这时因为eval命令不但可以置换该变量,还能执行相应的命令。在第一次扫描中进行了变量置换,第二次扫描就执行了该变量所包含的字符串里面的cat file 命令,所以就输出了我们想要的内容。
总结程序设计语言有哪些必备的要素和技能
以下内容仅供参考
- 需要有基本的内置函数来实现于键盘以及屏幕的交互,就像printf与scanf一样
- 需要有基本的数据类型定义
- 需要有基本的程序结构语句,比如顺序结构、分支结构、条件结构等
- 需要有可以让用户自定义函数的语句
- 可以在命令行进行交互
- 暂时只想到这些
这篇关于Unix/Linux系统编程第10章学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法