脚本初步

author author     2022-08-14     197

关键词:

       运维工作不出事故的时候,我们的工作基本上很重复。很多大公司因为这个特性,都在实现运维自动化。我们也很羡慕大公司的运维们,怎么办,自己动手打造自动化平台,开玩笑呢,别当真。我们把日常工作需要的命令写入脚本,每天我们都去执行一下,然后喝茶聊天打屁就好了。

       写脚本都要哪些技能呢!首先我们要明白脚本的本质是什么?脚本就是基于bash解释器,写的一堆命令的集合。既然是命令集合那么他就有执行顺序,脚本的执行顺序是从上至下依次执行每一个命令(每一个命令就是每一行的命令),脚本处理什么东西,处理数据,这些数据既可以是不变的数据,也可以是我们临时想传给脚本的。接下来我一个个说构成脚本的部件:向脚本传的参数,变量,命令执行控制,数值测试,字符测试,文件测试。

脚本参数

       我们学了很多命令,很多命令都有很多参数,我们也可以创造一个这样的命令。传参数很简单,在脚本内怎么引用。

       $0                 引用脚本名字

       $#                 引用第#个参数

       [email protected]               一个一个的想脚本内部传参数

       $*                 把参数以一个字符串向内部传递

变量

       有时我们需要的一个数据,需要两个数据相加得到,而这两个数据我们不能一次全部得到,这时我们需要先把数据暂存一个东西内。我们把这个暂存数据的东西,叫变量。

       变量暂存数据,它存什么数据,是整数还是浮点数还是字符串。在Linux中的脚本,模糊了数据类型,都放到同一个变量。之所以规定数据类型不仅仅是为了运算,同时也可以省空间。

       Linux是多用户系统,我们声明一个变量后和隔壁声明的变量同名咋办?嗯,linux把变量作用的范围进行了规范。

       环境变量:这个变量声明后,它不仅仅对自己有效,它就像基因会遗传给他的子进程。

       本地变量:只对自己有效

       局部变量:只对一部分函数(就好比linux中的命令)有效。

       引用变量的时候使用:$变量名

执行控制

       有时我们写脚本需要根据不同的情景显示不同的数据,在一般的编程语言有控制语句和执行流控制语句,bash中也有,这里我们只说最简单的控制方法。

       脚本执行的时候,是每一行每一行的向下逐行执行。那我们控制它只执行一部分命令就需要,把两个不同的语句放在一行。控制符有这两个:

       &&               它的功能,前一个命令执行成功,后一条命令才会执行

       ||                   它的功能,前一个命令执行失败,后一条命令才会执行

       If

       For

运算

       数值运算是每个命令必不可少的功能,bash的运算符合有以下几种:

       逻辑运算

       &          

       |            

                

       算术运算

       +          

       -           

       *           

       /             除,得整数

       %            取模,求余

数值测试

       运算符有了,比较运算也不能少

       -gt                大于

       -ge               大于等于

       -eq               等于

       -ne               不等于

       -lt                 小于

       -le                小于等于

字符串测试

       不说了字符串测试,也是必须的

       ==

       >           逐个字符比较

       <

       !=

       =~         左侧能否右侧匹配

       忘了

文件测试

       。。。。。。。。

       1文件类型测试    

       -e

       -f

       -d

       -L|-h

       -c

       -b

       -p

       -S

       2权限测试

       -r

       -w

       -x

       -u

       -g

       -k

       3属性

       -s

       -O

       -G

       4双目测试

       -ef

       -nt

       -ot

交互式脚本

       脚本怎么向外,申请参数,就像passwd命令。

       Read-p“”

总结

       交互式脚本和我们的关系不是很大,合理运用脚本我们的工作会大大减轻,运用前我们要熟悉脚本各命令的逻辑关系,熟悉脚本书写的格式,方便我们使用和判断脚本执行失败的排错。

       $#


本文出自 “老王linux旅程” 博客,请务必保留此出处http://oldking.blog.51cto.com/10402759/1876851

哇哈哈哈,tang脚本语言初步成果

额,现在已经有了while语句,支持四则运算,比较运算,赋值表达式,所有变量都是double浮点数类型,在运行完程序后自动将所有变量的值显示出来。目前语法树是这样的:当然用了访问者模式,每个继承IVisitor的类都能有自己... 查看详情

locust框架(初步安装使用)

...request:python-mpipinstallrequests 安装完成后切换到《测试脚本》所在目录,启动性能测试:locust-fE:Automation_performance_locustload_test.py(脚本路径)--web-host=127.0.0.1 执行成功后,打开:127.0.0.1:8089 查看详情

pytest学习和使用✨2初步使用和用例运行(代码片段)

2初步使用1测试脚本2脚本分析2.1断言使用assert2.2使用pytest运行用例规则3练习下用例运行规则1测试脚本在pytest_study文件夹下创建一个test_mm.py#-*-coding:utf-8-*-#作者:NoamaNelson#日期:2021/8/2716:51#文件名称:test_mm.py#作用ÿ... 查看详情

qlikview基础设置及初步了解

改变语言环境 开发工具条勾选出来创建selectionbox创建searchbox编辑脚本重加载数据基本联动思路:tableview tableview  查看详情

eos消息设计初步说明

1.EOSEOS是作为一个传递账户间已认证信息的平台。脚本语言和虚拟机的实现将独立于EOS操作系统技术,任何开发语言或虚拟机,只要有适当的、性能足够的沙箱,都可以通过API与EOS集成在一起。2.消息定义消息就是账... 查看详情

vue项目目录及主要文件的初步分析

...npm文件夹的同级目录下,然后发现node的目录下--即npm命令脚本目录下添加了一个vue命令脚本(意外发现当初安装express框架的时候也出现了这个情况)。由于改目录已经添加到系统路径里,所以vue命令也可以跟npm一样直接使用了~。... 查看详情

shell初步了解

...默认的系统shell,用于那些需要在启动时使用的系统shell脚本系统默认shell不一定和用户的一致(Ubuntu,它的默认shell是dashshell)shell的父子关系 第一次使用ps-f的时候,显示 查看详情

第十九篇jquery初步学习

jQuery初步学习 jQuery可以理解为是一种脚本,需要到网上下载,它是一个文件,后缀当然是js的文件,它里面封装了很多函数方法,我们直接调用即可,就比方说,我们用JS,写一个显示与隐藏,通常是:div.style.display="none/block... 查看详情

makefile学习----初步理解

...理解的makefile就是将程序员手动编译源文件的过程用一个脚本执行,这对于小型项目来说,程序员手动执行和用makefile来执行感官上可能没有大的差异,但是对于中大型项目来说,makefile的存在大大提供了程序员编译代码效率,一... 查看详情

消息队列activemq初步(代码片段)

...:http://activemq.apache.org/解压后基本目录结构:bin存放的是脚本文件conf存放的是基本配置文件data存放的是日志文件docs存放的是说明文档examples存放的是简单的实例lib存放的是activemq所需jar包webapps用于存放项目的目录进入bin目录:.... 查看详情

第三章基本概念(第五部分:函数初步)

...句,刻意在任何地方调用执行。函数实质上是一个短小的脚本,需要反复做一件事时,可以利用函数避免重复键入过多重复的代码。良好的编程习惯要求,先定义函数,再使用它们。定义函数用法如下:  function 函数名(参... 查看详情

初步编译qt5.15.2+vs2019+vtk8.2.0(代码片段)

目录一 编译结果二 cmake库编译配置三 cmake应用配置脚本四 推荐链接一 编译结果编译完没有QT,可能是QT版本太高、web组件不匹配、python3.9版本太高。二 cmake库编译配置三 cmake应用配置脚本这样就能qt和vs一起debug了。nican... 查看详情

unity3d的协程1——初步理解背后的迭代器(代码片段)

...程存在于许多编程语言中,Unity3D在调用我们编写的C#脚本时,会将它们统一放在一条主线程当中调度,所有的游戏对象、游戏组件都在这条主线程中。其他的线程并不能访问这些数据,所以对于我们所写的所有脚... 查看详情

android8.0编译过程初步分析

...译过程分析概述要想知道编译的过程,其实看编译的脚本,以及编译时产生的log是比较快的方法。编译相关的核心文件位于build/core下,而生成的文件在out/soong下,里面有编译过程中产生的编译相关文件。在编译过... 查看详情

手工场景,集合点,压力机的了解与初步使用

... 通过场景设计来模拟用户的真实操作并调用Vugen中的脚本,再通过设置的压力机产生压力,在场景运行中实时监控用户的执行情况,TPS,响应时间 吞吐量,服务器资料使用情况运行时设置 集合点  三种区别:第... 查看详情

初步了解3d着色器的概念(代码片段)

Unity3D中,着色器定义如下,  着色器是一个脚本,它应用材质中包含的属性来将3D对象的网格渲染到屏幕上的2D图像;  每个着色器都是为特定的渲染管道编写的;看一下panda3d中的一个例子;此例子带有2... 查看详情

android8.0编译过程初步分析

...译过程分析概述要想知道编译的过程,其实看编译的脚本,以及编译时产生的log是比较快的方法。编译相关的核心文件位于build/core下,而生成的文件在out/soong下,里面有编译过程中产生的编译相关文件。在编译过... 查看详情

xshell编程小结

初步学完shell脚本编程,通过这篇博客对其小结一下shell定义:shell其实是一个命令解释器,它的作用是解释用户输入的命令和程序shell脚本:我们可以在文本中输入一系列的命令、控制语句和变量,这一切有机的结合起来就形成了... 查看详情