20191305李天琦第十章学习笔记

20191305李天琦第十章学习笔记

本章介绍了sh脚本和其与C语言的区别,如何编写sh脚本(变量、语句、命令、常规系统命令和命令替换),解释了sh控制语句和他们的使用方法,说明了如何编写sh函数以及使用参数调用函数。

sh脚本是解释程序,它会逐行读取sh脚本并直接执行,而C语言恰恰相反,它必须先编译链接,再通过主sh的子进程运行文件。除此之外,sh脚本中每一个变量都是字符串且不需要main函数,而C语言必须要有一个main函数,其变量也必须要有一个类型。

10.3-10.8

这部分主要说明如何编写sh脚本,包括命令行参数、sh变量、引号、sh语句、常规命令以及命令语句。
内置命令:

.file:读取并执行文件。

break [n]:从最近的第n个嵌套循环中退出。

cd [dirname]: 更换目录。

continue[n]:重启最近的第n个嵌套循环。

eval [arg...]:计算一次参数并让sh执行生成的命令。

exec [arg...]:通过这个sh执行命令,sh将会退出。

exit [n]:使sh退出,退出状态为n。

export [var…]:将变量导出到随后执行的命令.

read [var...]:从stdin 中读取一行并为变量赋值。

set [arg...]:在执行环境中设置变量。

shift:将位置参数$2 $3...重命名为 $1 $2...。

trap [arg] [n]:接收到信号n后执行参数。

umask [ddd]:将掩码设置为八进制数 ddd 的。

wait pid]: 等待进程 pid,如果没有给出pid,则等待所有活动子进程。Linux命令
echo命令:通常将相邻的多个空格压缩成一个空格,除非有引号
expr命令:可将字符串转换为数字,进行操作后再转回字符串
Linux命令:

echo命令:将参数字符串作为行回显到stdout。

expr命令:间接更改sh变量的值。

管道命令:作为过滤器。

实用命令:

axk:数据处理程序。

cmp:比较两个文件。

comm:选择两个排序文件共有的行。

grep:匹配一系列文件的模式。

diff:找出两个文件的差异。

join:通过使用相同的键来连接记录以比较两个文件。

sed:流或行编辑命令。

sort:排序或合并文件。

tail:打印某个文件的最后口行。

tr:一对一宇符翻译。

uniq:从文件中删除连续重复行。

sh支持多种控制语句,可类比C语言的语句。,包括if-else-fi、for、while、until-do、case以及continue和break语句。if-else-fi语句和C语言中的if-else语句类似,但需要一个fi作为结束语句。for、while、until-do语句也十分类似,但需要有do-done关键字

10.10-10.16 这部分主要是讲解如何编写sh函数以及如何使用参数调用sh函数。

常用命令语法及功能

echo “some text”: 将文字内容打印在屏幕上

ls: 文件列表

wc –l filewc -w filewc -c file: 计算文件行数计算文件中的单词数计算文件中的字符数

cp sourcefile destfile: 文件拷贝

mv oldname newname : 重命名文件或移动文件

rm file: 删除文件

grep ‘pattern’ file: 在文件内搜索字符串比如:grep ’searchstring’ file.txt

由于sh逐行执行命令1,所以必须在任何可执行语句之前定义sh脚本中的所有函数。而在被调函数中,参数被引用为$0、$1到$n,其中通常$0是函数名,$1到$n是与命令行参数对应的位置参数。函数执行结束时,$?表示其退出状态,成功时状态为0,否则状态为非0

sh中的通配符:

*:扩展到当前目录中的所有文件

?:查询某文件名中的字符

[]:查询文件名中一对[]中的字符

posted @ 2021-09-26 18:03  20191305李天琦  阅读(22)  评论(0编辑  收藏  举报