脚本初步

发布时间:2020-06-15 21:00:06 作者:TWJDavid
来源:网络 阅读:308

本周的第二次课讲的是脚本编写初步,要想编写好脚本,按照老师的意思那就必须得对于之前学过的基本命令烂熟于心,所有还必须得把之前的博客补上,才会对于脚本编写打下良好的基础,那今天我们就来说说一说何为脚本。


在介绍脚本之前我们先了解一个概念,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


这只是脚本的最基本的知识,关于脚本,我们必须得自己动手去写,才会发现自己的问题,其中最基础最基础的还是命令的使用,以后有时间一定要把之前的补上,先去写作业了。。。


推荐阅读:
  1. squid服务初步窥探
  2. Nginx初步优化

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

脚本 逻辑

上一篇:在vSphere ESXi6 中成功安装 Nexus 1000v n1000v-dk9.5.2.1.SV3.1.10

下一篇:ruby on rails 删除上传后的文件

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》