学习笔记三

一、编程语言总结

我之前学习过python、java、html、css等编程语言,根据我所学的知识和经验,我认为一门程序设计语言的必备要素和技能包括:

1. 语法:了解语言的基本语法规则和语法结构,包括变量、数据类型、运算符、控制结构、函数等。

2. 数据结构和算法:掌握常用的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、查找、递归、动态规划等),能够灵活运用解决问题。

3. 编程范式:了解不同的编程范式(如面向对象编程、函数式编程、过程式编程等),并能够根据需求选择合适的范式进行编程。

4. 文件操作:能够读写文件、处理文件内容,包括文件的打开、读写、关闭等操作。

5. 异常处理:能够处理程序运行过程中可能出现的异常情况,保证程序的稳定性和可靠性。

6. 调试和测试:具备调试程序的能力,能够找出程序中的错误并进行修复,同时能够编写测试用例对程序进行测试。

而在shell脚本中,这些要素和技能可以通过以下方式呈现:

1. 语法:编写正确的shell脚本语法,包括变量的定义和使用、条件判断、循环控制等。

2. 命令行参数处理:能够接收和处理命令行参数,实现不同功能的脚本。

3. 文件操作:能够使用shell命令进行文件的读写、复制、移动等操作。

4. 流程控制:能够使用条件判断和循环控制结构实现程序的流程控制。

5. 函数和脚本模块化:能够将一段代码封装成函数或脚本模块,提高代码的复用性和可维护性。

6. 错误处理:能够处理脚本运行过程中可能出现的错误情况,包括错误信息的输出和异常处理。

二、学习归纳

1. sh脚本:sh脚本是一个包含sh语句的文本文件,命令行解释程序sh要执行该语句。所有sh程序基本上都执行相同的任务,但它们的脚本在语法上略有不同。

2.sh脚本与C程序:sh是一个解释性程序,逐行读取sh脚本文件并直接执行这些行,如果行是可执行命令且为内置命令,那么sh可直接执行,sh中每个变量都是字符串,因此不需要类型。而C程序必须先编译链接到一个二进制执行文件,然后通过主sh的子进程运行二进制可执行文件,且每个变量必须要有一个类型。

3.命令行参数:可以通过位置参数$0、$1、$2等访问命令行参数,可以用内置变量$#和$*计数并显示命令行参数。

$#=命令行参数$1到$n的数量

$*=所有命令行参数,包括$0

$S=执行sh的进程PID

4.sh变量

sh有许多内置变量,如PATH、HOME等,可以使用任何符号作为sh变量,所有的变量都是字符串,未赋值的sh变量是null字符串,可以通过命令行的形式设置赋值。

5.sh中的引号:使用\或单引号引用特殊字符

6.sh语句:包括所有Unix/Linux命令

7.sh命令:有.file读取并执行文件、break[n]从最近的第n个嵌套循环中退出、cd[dirname]更换目录的内置命令,echo命令、expr命令、管道命令、awk数据处理程序、cmp比较两个文件的实用命令等的Linux命令

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

9.sh控制语句:有if-else-if语句、for语句、while语句、until-do语句、case语句、continue、break语句

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

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

12.sh函数:

定义为:

func()

{

   # function code

}

13.sh中的通配符:

星号通配符:*,可扩展到当前目录的所有文件

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

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

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

15.eval语句:通过参数替换、命令替换、通配符扩展执行

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

三、苏格拉底提问

四、实践

五、问题

不知道怎么运行sh脚本

代码链接:新建 Issue · 周哲成/emotion - Gitee.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值