初步认识shell脚本编程

编程是使用人类自然语言或机器语言进行程序源代码书写的过程。这是我们都知道的,因为毕竟IT,都编程过什么学生成绩管理系统,图书馆管理系统。等等。

    编程为了能够让用户在使用计算机的时候,可以让计算机以非交互的方式完成某些任务;此时,用户需要将此类任务编辑成为一个文件,并且让计算机爱按照特定顺序进行任务读取,从而实现预期的功能;

   为了让计算机能够解读此类文件的内容并正确予以执行,必须将程序源代码文件转换为计算机可以识别并使用的二进制格式,此转换过程称为编译;而想要完成编译过程,必须使用特定的编译器工具;因此,无论使用何种编程语言进行程序编写,都必须严格按照编译器所能够识别的特定格式和语法结构进行程序编写;

   编程语言:
       高级语言:
           根据源代码的处理方式分类:
               编译型语言:
                   源代码 --> 编译器(编译) --> [链接器(链接)--> ] 汇编器(汇编)-->可以执行的二进制代码文件;
               解释型语言:
                   源代码 --> 解释器(逐行解释)-->边解释边执行

           根据编程过程中的功能实现是调用库还是调用外部程序文件:
               完整编程语言:
                   利用库或编程组件进行编程;
               脚本编程语言:
                   利用解释器调用被选择的外部应用程序;
由此可以看出shell脚本并不是一个编程,只能调用外部应用程序。
           根据程序的编写规范分类:
               过程式语言:比如C语言
                   程序 = 指令 + 数据
                   以指令为中心,围绕指令的功能实现设计数据和数据结构,数据为指令服务
                   算法和指令的实现形式:
                       顺序执行
                       选择执行
                       循环执行

               面向对象语言:比如C++,java等等
                   程序 = 算法 + 数据结构
                   以数据和数据结构为中心,将数据实例化,围绕数据的需求来部署算法
                       类(class):被实例化的数据
                       属性(attribution):同一类中的不同对象的区分依据;
                       方法(method):类的正确的操作方法;

       低级语言:
           汇编语言

       机器语言:二进制语言
   shell脚本编程--bash脚本编程:
       过程式编程语言,解释运行的编程语言,脚本类语言(依靠外部应用程序文件运行)

   shell脚本到底是什么?
       1.纯文本文档——文件中所有存储或包含的指令+数据都是以字符为单位进行存储的;
       2.根据用户的需求来解决用户问题的简单或复杂的命令组合体;
       3.是一种具有"执行幂等性"的程序实体:
           执行幂等性:任何命令的一次执行结果和多次执行结果是一致的;

           注意:
               很多命令都不具备"执行幂等性",因此在shell脚本中需要使用大量的程序逻辑来判断某个命令会否符合其运行条件,从而避免在运行过程中出现的严重错误:

   shell脚本中的代码内容如何书写?
       1.首行必须是shebang,即:解释器程序的绝对路径,必须占据绝对行首且必修单独占据第一行。在执行脚本时,会根据shebang的指示,启动相应的解释器以解释脚本内诸多的命令;(类似于c语言第一行#include<stdio.h>一样)
           #!/bin/bash


       2.在shell脚本中,除了shebang之外,所有行首为#字符的行,均被解释为注释行:即解释器只会解释其内容,但并不予以执行;(和C语言的//一样)

       3.解释器会忽略脚本文件中所有的空白行;指的是:在一行文本中,除了空白字符,空格字符,指标字符之外不具备其他任何字符的行;

       4.大量的命令和关键字
           命令:内部或外部应用程序
           关键字:内置于shell,只能在某种特定结构体中执行的命令;keyword;
               如:if,else,then,do,while,for,select,until,case,fi,esac,

       5.shell中所有的特殊功能字符;

           注意:所有被编写进shell脚本文档的命令、关键字及符号必须是ASCII编码格式的字符,其他编码格式的字符可以出现在shell脚本,但不具有任何特殊含义;

   如何编写shell脚本?
       可以利用所有的文本文档编辑工具进行shell脚本编写,如:
           nano,vi,vim,pico,emacs,...
           通常在linux的各发型版本中,推荐使用vim;

   脚本文件的命名方式:
       一般情况下,会为脚本设置".sh"的名称后缀;较低版本的编辑工具,会根据文件的后缀名称来识别是否为shell脚本文件;较高版本的文本编辑工具,如vim7,无需过多的关心文件后缀名的问题。

    脚本的运行方式:

脚本内容:

#!bin/bash
#
a="`egrep "^[[:space:]]*$" /etc/grub2.cfg | wc -l`"
b="`egrep "^[[:space:]]*$" /etc/issue | wc -l`"
let c=$a+$b
echo "$c"

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/869c64fa737a13c8a0cbdf9cd1a6ee4e.html