Shell脚本

目录

前瞻

语言分类

处理逻辑

shell的作用

shell脚本的构成

执行脚本的方式

脚本的错误

脚本中添加检查错误行

重定向与管道符

重定向

管道符

变量

常见shell变量的类型

变量的格式

​编辑

read -p

整数的运算

环境变量

bash

只读变量

位置变量

预定义变量


前瞻

语言分类

  • 面向过程语言:开发的时候需要一步一步的执行
  • 面向对象语言:开发的时候将任务当成一个整体

处理逻辑

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

shell的作用

shell是一个命令解释器,将人类的高级语言和计算机的二进制语言相互转换,人类写了一个命令集合,然后用bash(shell)翻译给硬件执行

shell脚本的构成

  • 声明解释器:代表接下来使用什么解释器来解释命令
  • 注释信息:以#开头的语句来进行对文本指令注释
  • 执行命令:操作命令

Shell脚本_第1张图片

注:脚本一定要以.sh结尾

执行脚本的方式

  • 直接调用,shell解释器+脚本名(不需要加上权限)
  • 路径/脚本(需要权限)
  • source或. +脚本名,一般不推荐,会直接修改当前bash环境(不需要权限)
  • 若想全局运行,做软连接将脚本放入$PATH路径下(需要权限)

示例:更改权限做软连接将脚本放入$PATH路径下,输入脚本名,直接执行

更改脚本权限可执行

做软连接将其保存在$PATH路径下

Shell脚本_第2张图片

输入脚本名,直接运行

脚本的错误

  • 命令错误,不会影响接下来的命令执行,但本条的命令不执行
  • 语法错误,会影响脚本无法正常运行
  • 逻辑错误,无法完成实验目标

注:

  • bash -x 脚本:执行并找到显示错误
  • bash -n 脚本:检查语法错误

脚本中添加检查错误行

set -e:一旦出错立即停止

Shell脚本_第3张图片

set -u:变量不存在不让执行

Shell脚本_第4张图片

Shell脚本_第5张图片

重定向与管道符

重定向

重定向:改变电脑数据的传输方向,默认电脑的输出方向是屏幕

  • 标准输入:我们通过键盘,鼠标,扫描仪,话筒等设备输入个电脑的指令
  • 标准输出:你发了一条指令给电脑操作,电脑会回复结果给你,结果一定是显示在屏幕上
  • 错误输出:你发了一条指令给电脑操作,如果该操作不成功,会显示错误结果

Shell脚本_第6张图片

Shell脚本_第7张图片

管道符

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

变量

常见shell变量的类型

  • 自定义变量:由用户自己定义,修改和使用
  • 预定义变量:bash中内置的一类变量,不能修改,规定好的变量让你使用
  • 环境变量:由系统维护,用于设置工作环境
  • 只读变量:只可以读不可以改
  • 位置变量:通过命令行给脚本传递参数

变量的格式

  • 设置变量:变量名=变量值(两边没空格)
  • 调用变量:echo $变量名
  • 删除变量:unset 变量名
  • 重新定义变量:变量名=变量值
  • 追加变量值:变量名+=变量值

Shell脚本_第8张图片

read -p

read -p “交互内容” 变量:将从键盘输入的交互内容变成变量

示例

Shell脚本_第9张图片

Shell脚本_第10张图片

整数的运算

格式: expr 变量1 运算符 变量2 [运算符 变量3]

运算符

  • 加法 +
  • 减法 -
  • 乘法 \ *
  • 除法 /
  • 取余 (取模)%

示例:变量运算一

Shell脚本_第11张图片

Shell脚本_第12张图片

示例:变量运算二

Shell脚本_第13张图片

Shell脚本_第14张图片

环境变量

环境变量:由系统提前创建,用来设置用户的工作环境

Shell脚本_第15张图片

主要环境变量

Shell脚本_第16张图片

bash

bash:是centos7默认的shell程序,虚拟机写入bash相当于又开了一个bash环境,即父bash生成一个子bash,父bash的添加变量不会继承到子bash的变量库中

Shell脚本_第17张图片

Shell脚本_第18张图片

Shell脚本_第19张图片

只读变量

只读变量:变量值不允许修改(重新赋值)的情况,无法使用 unset删除,最快方法重启

Shell脚本_第20张图片

位置变量

位置变量也称为位置参数,使用$1、$2、$3、…、$9 表示

Shell脚本_第21张图片

Shell脚本_第22张图片

预定义变量

预定义变量:bash 帮你定义好了 拿来用就可以了

  • $*:表示所有位置参数的内容看成一个整体返回 返回所有

  • $@:表示所有位置参数的内容分割成n份,每份作为一个独立的个体返回 返回所有

  • $?:表示前一条命令执行后的返回状态,返回值为 0 表示执行正确,返回任何非 0值均表示执行出现异常

  • $#:表示命令行中位置参数的总个数

  • $0:表示当前执行的脚本或程序的名称 当前脚本的名字

  • $$:当前bash的进程id

  • $!: 后台任务最后一个id

Shell脚本_第23张图片

你可能感兴趣的:(linux,运维,服务器)