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

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修改脚本退出值

在未指定退出值时

指定退出值时

http://www.xdnf.cn/news/9603.html

相关文章:

  • docker-记录一次容器日志<container_id>-json.log超大问题的处理
  • opencv + jpeg_turbo(启用SIMD加速)
  • Flutter3.22适配运行鸿蒙系统问题记录
  • 算力卡上部署OCR文本识别服务与测试
  • w~视觉~合集6
  • 【组件】跳动的图标 动画
  • 实验设计与分析(第6版,Montgomery)第4章随机化区组,拉丁方, 及有关设计4.5节思考题4.1~4.4 R语言解题
  • GRIT:让AI“指着图说话“的新思路
  • get_rga_thread线程和low_camera_venc_thread线程获取低分辨率VENC码流数据
  • ORB-SLAM2学习笔记:ComputeKeyPointsOctTree分析过程记录
  • 【C语言】详解 指针
  • 使用 PySpark 从 Kafka 读取数据流并处理为表
  • 【25软考网工】第九章 网络管理(1)网络管理基础、SNMP
  • 端到端测试最佳实践:从入门到精通的完整指南
  • vue+ts+TinyEditor 是基于 Quill 2.0 开发的富文本编辑器,提供丰富的扩展功能,适用于现代 Web 开发的完整安装使用教程
  • 集成电路制造设备防震基座选型指南:为稳定护航-江苏泊苏系统集成有限公司
  • 手机如何压缩文件为 RAR 格式:详细教程与工具推荐
  • 井喷式增长下的证件缺口:特种设备人才供需矛盾如何破局?
  • 数值积分实验
  • 深入理解计算机科学中的“递归”:原理、应用与优化
  • vue3+Pinia+element-plus 后台管理系统项目实战
  • 安全,稳定可靠的政企即时通讯数字化平台
  • 金山云Q1营收19.7亿元 AI持续释放业务增长新动能
  • 【第2章 绘制】2.13 坐标变换
  • 数据拟合实验
  • IO 中的阻塞、非阻塞、同步、异步及五种IO模型
  • 服务器定时任务查看和编辑
  • SpringBoot Controller接收参数方式
  • Senna代码解读
  • SQLite软件架构与实现源代码浅析