shell脚本编程基础知识

164 阅读4分钟

编程基础

一、程序组成

程序:算法+数据结构

  • 数据:是程序的核心
  • 算法:处理数据的方式
  • 数据结构:数据在计算机中的类型和组织方式

二、编程风格

1. 面向过程语言

  • 按照顺序写你的程序
  • 问题规模小,可以步骤化,按部就班处理
  • 以指令为中心,数据服务于指令
  • C,shell

2. 面向对象语言

  • 将编程看成是一个事物,对外界来说,事物是直接使用的,不用关心事物内部的情况。而编程就是设置事物能够完成功能。(不关心内容过程,只关心结果)
  • 问题规模大,复杂系统
  • 以数据为中心,指令服务于数据
  • java,python,golang.....

三、编程语言的三种处理逻辑

  • 顺序执行:程序按从上到下顺序执行
  • 选择执行:程序执行过程中,根据条件的不同,进行选择不同分支继续执行
  • 循环执行:程序执行过程中需要重复执行多次某段语句(已知次数 已知条件 死循环)

执行方式

  1. 指定路径去执行脚本(需要有执行权限)
  2. 指定解释器去执行脚本(不需要权限)

注意:指定了使用bash去执行脚本是不需要权限的。

四、编程语言的分类

  • 编译运行:源代码 → 编译器(编译)→ 程序文件;
  • 解释运行:源代码 → 运行时启动解释器,由解释器边解释边运行。

根据启编译过程中功能的实现是调用库还是调用外部的程序文件

  • shell脚本编程:利用系统上的命令及编程组件进行编程;
  • 完整编程:利用库或编程组件进行编程。

shell脚本基础

一、什么是Shell

Shell 是一类程序的总称,用于将人类使用的高级语言转换成机器能看懂的二进制语言,为用户和内核之间的交互提供接口。

二、什么是Shell脚本

  • 将命令按顺序一一列出,最后自动执行
  • 执行需要权限,也可以直接使用绝对路径
  • 脚本其实不复杂,通用脚本环境改变后依然可以使用的脚本构成

三、linux中常见的shell

  • bash:基于gun的框架下发展的shell
  • csh:类似c语言的shell
  • tcsh:整合了csh提供了更多功能
  • sh:已经被bash替换
  • nologin:让用户无法登录

bash (/bin/bash)是目前大多数Linux 版本采用的默认shell

image.png

四、脚本的构成

  1. 脚本申明(解释器):第一行开头“#!/bin/bash”,表示此行以下的代码语句是通过/bin/bash程序来解释执行。#!/bin/bash为默认的解释器还有其他类型的解释器,#!/bin/python #!/bin/expect

  2. 注释信息:以#开头的语句表示为注释信息

  3. 可执行语句:比如echo命令用于输出" "之间的字符串

image.png

image.png

image.png

image.png

五、脚本错误与检查

脚本错误的种类

  • 命令错误:命令出错不会影响接下来的命令继续
  • 语法错误:会影响接下来的命令继续
  • 逻辑错误:只能自己去筛查代码的正确

检查脚本错误

检查语法错误:bash -n 脚本名称 (不在当前目录下加绝对路径)
检查逻辑错误:bash -x 脚本名称 (不在当前目录下加绝对路径)

六、重定向与管道符

1. 重定向

  • 标准输入:从该设备接收用户输入的数据
  • 标准输出:通过该设备向用户输出数据
  • 标准错误:通过该设备报告执行出错信息
类型操作符用途
重定向输入<从指定的文件读取数据,而不是从键盘输入
重定向输出1>将输出结果保存到指定的文件(覆盖原有内容)
>>将输出结果追加到指定的文件尾部
标准错误输出2>将错误信息保存到指定的文件(覆盖原有内容)
2>>标准错误输出结果追加到指定的文件尾部
混合输出&>无论对错都可以重定向将标准输出、标准错误的内容保存到同一个文件中

2.管道符

将左侧的命令输出结果,作为右侧命令的输入(处理对象)可以 叠加使用。