当前位置: 首页 > news >正文

Linux的SHELL脚本基础

一、什么是shell脚本

shell脚本是文本的一种

shell脚本是可以运行的文本

shell脚本的内容是由逻辑和数据组成

shell脚本是解释型语言

二、shell脚本存在的意义

Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具

Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的内容。

每一个合格 的Linux运维工程师,都需要能够熟练地编写Shell脚本语言,并能够阅读系统及各类软 件附带的Shell脚本内容。

一次编编写永久受益

注:系统支持的shell类型可以查看/etc/shells,常见shell种类有:

Bourne Shell(/usr/bin/sh或/bin/sh):标识为sh,该Shell由Steve Bourne在贝尔实验室时编 写。在许多Unix系统中,该Shell是root用户的默认的Shell。

Bourne Again Shell(/bin/bash):标识为bash,该Shell由Brian Fox在1987年编写,是绝大多 数发行版的默认的Shell,当运行sh时其实调用的是bash。

C Shell(/usr/bin/csh):标识为csh,该Shell由Bill Joy在BSD系统上开发。由于其语法类似于C语 言,因此称为C Shell。

K Shell(/usr/bin/ksh):标识为ksh,该Shell由贝尔实验室的David Korn在二十世纪八十年代早 期编写。它完全向上兼容 Bourne Shell 并包含了C Shell 的很多特性。

三、shell脚本中的基本元素

1.脚本的基本结构

脚本幻数,即脚本解释器,脚本运行的最优先指令,负责对脚本中其他命令进行解释 程序主题,程序主体通常由命令,执行逻辑控制器和数据组成

注释,脚本中的说明文字,不参与脚本执行,只是对脚本中的代码进行说明

1.1脚本幻数为常量,基本不变,例如#!

一个文件中的程序是运行在该脚本幻数中的

1.2注释为#号

2.脚本中的注释方法

2.1单行内容的注释(标红框的为注释)

2.2多行内容的注释,用:"   ",双引号中间的内容即为注释

注: :和“中间必须输入空格

命令书写错误时,此时执行命令会显示报错内容,而此时报错了的命令系统已经尝试执行了

四、脚本的书写规范

1.书写规范注意事项

1.1脚本文件名应见名知意,例如backup_mysql.sh

1.2文件开头指定脚本解释器 #!/bin/sh 或 #!/bin/bash

1.3脚本中尽量不要用中文注释,防止本机或切换系统环境后中文乱码的困扰

1.4多使用内部命令,如:echo、eval、exec、export、read、shift、exit

1.5尽量用少的命令完成动作

例如下可知,尽量少的命令可以是user时间和sys时间减少

1.6开头加版本特权等信息,这些信息如下:

# Date:创建日期

# Author:作者

# Mail:联系方式

# Function:功能

# Version:版本

1.7利用缩进体现代码结构,更加利于后期阅读,详情如下:

2.vim用于书写脚本的设定

在编写一个脚本时我们需要书写一些主属性信息用来利与脚本阅读,如果每次都手写这些信息,很显然有做了很多重复动作,用vim的自动编写功能可以实现对于这些重复动作的简化

首先进入编辑

然后输入内容

set et可以使你在vim编写中按空格键可以一格一格的跳,ts为你每一跳的长度

ai可以使你在vim编写中按enter键后会缩进,sw可以设定你的缩进长度

func为函数,其后面要跟大写,endfunc结束

call为调用,append后加数字为指定在第几行

map和auto任写其一

buf表示一个状态,后加的是一个该状态的类型,call后的调用与func后的一致

五、脚本执行方法

1.在当前环境下运行

我们设置一个测试脚本内容

1.1用.加空格

1.2用source

注:这两种执行方式都不需要脚本本身有执行权限

2.在指定环境中运行

2.1用sh

2.2用chmod +x lee.sh(这个命令为添加可使用权限),这个命令执行后你就可以用根目录的方式去调用,如/script/test.sh

六、脚本调试

脚本在执行过程中如果出现问题,单从脚本的执行报错中找问题困难比较大,如果在执行时显示执行过程这样就可以快速定位脚本的问题所在

1.接下来说明然后显示执行过程

例(其中cat命令应为cal显示系统日历,用这个错误命令为例)

直接执行脚本的效果

显示命令执行过程的效果

注:在显示执行过程时,+行表示命令,不带+的行表示命令的输出

所以,显示命令执行过程后我们可以清晰的看到脚本错误的地方,错误的脚本不会执行

七、命令退出值

1.什么是退出值

在UNIX或者Linux中,每个命令都会返回一个退出状态码

退出状态码是一个整数,其有效范围为0~255

通常情况下,成功的命令返回0,而不成功的命令返回非0值。非0值通常都被解释成一个错误码

行为良好的UNIX命令,程序和工具都会返回0作为退出码来表示成功。

2.查看和更改退出值

2.1查看退出值

2.2修改脚本退出值

在未指定退出值时

指定退出值时

相关文章:

  • 在qt中使用c++实现与Twincat3 PLC变量通信
  • Kubernetes Dashboard 安装部署、访问与管理实战实验
  • VScode单双引号、分号格式
  • 【深度学习-pytorch篇】4. 正则化方法(Regularization Techniques)
  • ParakeetTDT0.6BV2,语音识别ASR,极速转录, 高精度英文转录,标点支持(附整合包)
  • 常用算法模板函数(Python)
  • 用Python玩转人工智能——手搓图像分类模型
  • 【PhysUnits】13 改进减法(sub.rs)
  • 【加密算法】
  • 从“被动养老”到“主动健康管理”:平台如何重构代际关系?
  • Odoo 条码功能全面深度解析(VIP15万字版)
  • LiveNVR :实现非国标流转国标流的全方位解决方案
  • 勾股数的性质和应用
  • 接地气的方式认识JVM(一)
  • 通过teamcity cloud创建你的一个build
  • 【C语言】详解 指针
  • Java开发之定时器学习
  • 欧拉角转为旋转矩阵
  • 二叉树的锯齿形层序遍历——灵活跳跃的层次结构解析
  • w~视觉~合集6
  • 福田网站建设设计/免费发布信息的平台有哪些
  • 收费小说网站怎么做/注册教育培训机构需要什么条件
  • 购物网站如何做推广/网络营销的期末试题及答案
  • 动态网站开发的语言/台州百度快照优化公司
  • 像美团这种网站怎么做/产品seo是什么意思
  • 网站开发大概多久/百度网盘资源分享