本周的第二次课讲的是脚本编写初步,要想编写好脚本,按照老师的意思那就必须得对于之前学过的基本命令烂熟于心,所有还必须得把之前的博客补上,才会对于脚本编写打下良好的基础,那今天我们就来说说一说何为脚本。
我们注重客户提出的每个要求,我们充分考虑每一个细节,我们积极的做好成都做网站、网站制作服务,我们努力开拓更好的视野,通过不懈的努力,创新互联赢得了业内的良好声誉,这一切,也不断的激励着我们更好的服务客户。 主要业务:网站建设,网站制作,网站设计,重庆小程序开发,网站开发,技术开发实力,DIV+CSS,PHP及ASP,ASP.Net,SQL数据库的技术开发工程师。在介绍脚本之前我们先了解一个概念,bash特性之多命令执行
我们在之前有学过怎样把几个命令连接在一起执行,以上就是常见的两种$()和管道,但这两者都不是很方便,其中管道更是要求前一个命令必须有输出,所有我们运用了逻辑运算的概念去执行多个命令。
~]# COMMAND1 $(COMMAND2)
~]# COMMAND1 | COMMAND2... 进程之间的通信(IPC)
顺序执行结构:
~]# COMMAND1 ; COMMAND2 ; ...
选择执行结构:
下面介绍几种最简单的逻辑运算,因为我们专业之前学过,所以理解起来比较容易,大家有没学过的还是得仔细思考一阵
逻辑运算:
与:逻辑乘法,&&,双目运算符
0:SUCCESS --> true
1-255:FAILURE --> false
true && true = true
true && false = false
false && true = false
false && false = false
“与”的短路逻辑运算:只要第一个操作数为false,则其逻辑运算的结果一定为false
COMMAND1 && COMMAND2
如果COMMAND1能够成功执行,则COMMAND2会被执行
如果COMMAND1执行失败,则COMMAND2不会被执行
或:逻辑加法,||,双目运算符
true || true = true
true || false = true
false || true = true
false || false = false
“或”的短路逻辑运算:只要第一个操作数为true,则其逻辑运算的结果一定为true
COMMAND1 || COMMAND2
只要COMMAND1能够成功执行,COMMAND2就没有必要执行了
只有当COMMAND1执行失败的时候,COMMAND2才会被执行
非:逻辑取反,!,单目运算符
!STRING:读取命令历
! true = false
! false = true
! COMMAND
! COMMAND1 && COMMAND2相当于 COMMAND1 || COMMAND2
! COMMAND1 || COMMAND2相当于 COMMAND1 && COMMAND2
德摩根定律:
!(A && B)== !A || !B
!(A || B)== !A && !B
逻辑运算符优先级:
!>&&>||
异或:双目运算符
比对两个操作数是否不同,如果不同,则逻辑运算结果为真,如果相同,则逻辑运算结果为假
以上是关于逻辑运算最基本的概念,大家努力记住并理解他就好。
下面正式说一下什么是shell脚本编程
shell脚本编程:
什么叫编程?
编写程序源代码
为了能够让用户使用计算机的时候,可以让计算机以非交互的方式完成某些任务,我们需要将这些任务编制成为一个文件,让计算机顺序读取,从而实现功能。
在我看来这是一种节省人力的方式,如果我们一条条指令去敲得话,会浪费大量的时间精力,如果我们事先将其编成连续的代码,让计算机顺序去执行,就会大大节省我们的时间。
编程语言:
高级语言:
根据源代码的处理方式:
编译运行语言:
源代码-->编译器(编译)-->汇编器(汇编)-->{链接器(库的链接)}-->可以直接运行的二进制文件
解释运行语言:
源代码-->直接启用跟源代码对应的解释器程序,由解释器边解释边执行
根据其编程过程中的功能的实现是调用库还是外部程序文件:
完整编程语言:利用库或编程组件进行编程
脚本编程语言:解释器
shell脚本:调用shell程序,其次要调用我们需要的外部命令文件,命令解释器
提供了单一功能的编程接口:对所谓的过程式编程逻辑的支持
根据程序的编写范式:程序=指令+数据 程序=算法+数据结构
过程式编程语言:
以指令(算法)为中心,围绕指令(算法)的实现设计数据和结构,数据为指令服务的
算法或指令的实现方式:
顺序执行
选择执行
循环执行
面向对象编程语言:
以数据(数据结构)为中心,将数据实例化为类,围绕着数据的需求部署指令(算法)
类、属性、方法
低级语言:
汇编语言:
以上是关于编程的一些概念,对于我们理解脚本有很大作用。
shell脚本编程:
过程式编程语言,解释运行,依赖于外部程序文件运行
shell脚本到底是什么:
1.纯文本文档-文件中所存储的数据都是义字符为单位进行存储的
2.根据用户的需求来解决用户问题的大量命令的组合体
3.“执行幂等性”-任何命令多次执行的结果是一致的
很多命令都不具备“执行幂等性”-任何命令多次执行的结果是一致的
在shell脚本中就需要使用大量的程序逻辑来判断某个命令是否满足其运行条件,以避免在运行过程中出现严重错误
shell脚本的代码内容:
1.首先必须是shebang,解释器路径,必须占据绝对行首:在执行时,启动相应的解释器去解释脚本内诸多内容
#!/bin/bash
2.在shell脚本中,除了shebang外,以#占据绝对行首的内容,均为注释行,解释器会自动忽略这样的行的内容
3.解释会忽略脚本中所有的空白行
4.大量的命令和关键词(if、else、then、do)
注意:shell脚本一旦运行,是在当前的shell中根据shebang的指示,开启一个解释器(子shell)解释代码内容,shell脚本的内容是在一个子shell中实现的
我们可以利用文本编辑工具来编写shell脚本
nano vi vim emacs pico
推荐使用vim
约定下,脚本文件名的后缀为.sh,也可以不加:
脚本的运行方法:
1.位脚本文件赋予执行权限,直接运行此文件
chmod +x /PATH/TO/SCRIPT_FILE
~]# /PATH/TO/SCRIPT_FILE
如果直接在执行脚本时,只写脚本文件名不给出路径的话,必须确保PATH变量中保存的路径下,能找到该脚本文件
2.直接使用解释器运行脚本,将脚本作为解释器命令的参数
bash /PATH/TO/SCRIPT_FILE
这只是脚本的最基本的知识,关于脚本,我们必须得自己动手去写,才会发现自己的问题,其中最基础最基础的还是命令的使用,以后有时间一定要把之前的补上,先去写作业了。。。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。