一、任务详情

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

二、知识点归纳

10.1 sh脚本

sh脚本是一个包含sh语句的文本文件,命令解释程序sh要执行该语句。sh脚本通常以“.sh”为扩展名,并且必须以“#!/bin/bash”作为第一行,用于指定脚本的解释器。

10.2 sh脚本与C程序

sh脚本和C程序有一些相似之处,但它们在根本上是不同的。
sh是一个解释性程序,逐行读取sh脚本文件并直接执行这些行,如果行是可执行命令且为内置命令,那么sh可直接执行,sh中每个变量都是字符串,因此不需要类型。而C程序必须先编译链接到一个二进制执行文件,然后通过主sh的子进程运行二进制可执行文件,且每个变量必须要有一个类型。C需要有main()函数,sh不需要。

10.3 命令行参数

可以使用与sh命令完全相同的参数调用sh脚本。
可以通过位置参数$0、$1、$2等访问命令行参数

10.4 sh变量

sh有许多内置变量,如PATH、HOME等,可以使用任何符号作为sh变量,不需要声明,所有的sh变量都是字符串,未赋值的sh变量是NULL字符串。

10.5 sh中的引号

使用\或单引号引用特殊字符

10.6 sh语句

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

10.7 sh命令

sh有许多内置命令,由sh执行,不需要创新新进程。
sh可以执行所有的Linux命令

10.8 命令替换

$A会被替换成A,当sh遇到‘cmd’或$(cmd),会执行cmd,然后用执行结果字符串替换$(cmd)

10.9 sh控制语句

sh支持许多执行控制语句。
有if-else-if语句、for语句、while语句、until-do语句、case语句、continue、break语句

10.10 I/O重定向

指示sh将I/O重定向到除默认stdin\stdout和sterr以外的文件

10.11 嵌入文档

输出命令从stdin获取输入,将其回显到stdout,直到遇到预先安排的关键字

10.12 sh函数

定义为:
func()
{
   #function code
}
必须在任何可执行语句之前定义sh脚本中的所有函数。

10.13 sh中的通配符

星号通配符:*,可扩展到当前目录的所有文件
?通配符:查询某文件名中的字符
[ ]通配符:查询文件名中一对[ ]中的字符

10.14 命令分组

用{}或()对命令进行分组

10.15 eval语句

sh内置命令,由sh自己执行,不需要复刻新进程。
通过参数替换、命令替换、通配符扩展执行

10.16 调试sh脚本

由带有-x选项的子sh运行

10.17 sh脚本的应用

1.自动化任务和作业调度: sh脚本可用于自动执行重复性任务和作业,从而节省时间和减少手动操作的错误。可以使用工具如crontab来安排定期运行脚本,执行备份、日志清理、数据处理等任务。
2.系统管理和监控: 系统管理员可以编写脚本来sh管理和监控服务器。这包括系统资源的监视、安全性检查、日志文件的分析、软件包管理以及对服务器状态的自动响应。
3.部署和配置管理: 开发人员和运维人员使用sh脚本来自动化应用程序的部署和配置。包括安装依赖项、设置环境变量、启动和停止服务、应用程序的升级等。
4.日志和数据处理: sh脚本在日志分析和数据处理方面非常有用。它们可用于从日志文件中提取信息、生成报告、处理大量数据、文件格式转换以及文本处理等任务。

2.苏格拉底挑战

问题(1)
image
image
问题(2)
image
image

二、问题与解决思路

问题

(1)如何正确运行sh脚本?
(2)sh脚本是用什么编程语言书写的?

解决思路

问题(1)
image
image
问题(2)
image

三、实践

posted on 2023-09-24 19:05  20211201李柏林  阅读(38)  评论(0)    收藏  举报