12 shell脚本--004编程原理

1、编程介绍

  (1)早期编程:

    驱动 :(硬件默认是不能使用的)不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序来进行“翻译”

    更趋近于硬件开发的工程师,要学习“汇编语言”;而“汇编语言”被厂家所限制

    操作系统是做什么的:分配硬件资源

  (2)现在编程:

    基于高级语言,以及超高级语言,更好的让程序员能够的实现变成功能

   (3)编程语言的分类:

      高级语言、超高级语言需要翻译成计算机可读的语言(二进制指令)

      解释型:逐行翻译,逐行执行  shell、python、java、perl

          bash -x filename

      编译型:一次编译,全部执行  C、C++、C#、java

      程序 = 指令 + 数据

      面向对象  --侧重于数据的编程语言

      面向过程  --侧重于指令的编程语言

   (4)编程语言的执行方式

      【一行一行】

      1、顺序执行        

      2、循环执行

        *for(遍历)*、while(循环条件)、until(和while相反)

      3、选择执行---分支

        if、*case*

2、shell脚本语言介绍

  1、逻辑关系

    练习:添加用户          

        

        验证:

        

     2.shell没有内嵌函数,没有函数库调用,没有调用库的接口,

2、shell脚本语言的介绍

  (1)优点:调用os(操作系统)的命令行,来实现所有功能

  (2)缺点:没有库调用(区分python)

  (3)shell脚本包括:1、*命令*(非常重要)

                   2、变量(全部变量、局部变量、本地变量、传参)

              3、逻辑关系

      shell脚本的第一句话!!!

        #!/bin/bash   //定义脚本解释器  (普遍认为#为注释行,这里为特殊)shebang

        /etc/shells    //查看当前系统支持的shell程序

        echo $SHELL    //查看当前会话的shell程序

        /etc/passwd   //指定了用户默认支持的shell程序(/sbin/nologin)

  (4)shell的执行

        1、bash命令来执行脚本

          -n     //查看shell脚本的逻辑错误(注意:单词写错可不管)

          -x     //逐行执行显示执行的脚本程序(方便排除哟)

        2、授权chmod  *(u)* +x filename     //*(u)*在你不是root用户时,要加上你的用户名

          使用全路径执行脚本,

3、变量:一段命令的内存空间,用来存储  

  (1)

  环境变量

  局部变量  declare命令   //定义变量类型

  本地变量  local  在函数中使用

  (2)变量类型:

      (1)数值型:

        1、整型    int

        2、浮点型 float

        3、布尔值 bool(0 假 False,1 真 True)

       (2)  字符型:

        1、普通字符及字符串

        2、数组

        

      (3)编程语言的分类:

          1、强类型语言:-----数值必须被定义,才能进行处理或运算

          2、弱类型语言:-----编程语言可以自动识别变量类型

            【*多态*-----一个数据具有多个属性,而最后使用的属性取决于和他进运算的数据】

  (3)传参

    $? ----上一条命令的状态    0 正确    、1-255 错误

    $1、$2...${10}-----命令后面传入脚本的数据,以空格为分隔符

    $#-----统计传参数量${$#}

    $*-----表示所有传参,所有参数以字符串输出

    $@-----表示所有传参,所有参数以列表输出

  (4)定义变量格式:

      NAME = VALUE (一个等号叫赋值,两个等号叫判断)  

      我们通过命令declared定义变量类型

      declare -i a = 10    //-i整数

      declare -a   //数组

  (5)变量命名:

      1、下划线的方式指定命名

      2、驼峰式命名方式

4、test文件测试、条件判断

  在脚本中,我们需要进行语句分支;说白了就是判断

  判断就是使用test命令来实现;

  使用格式:

    1、test 【option】file

    2、[ 条件语句 ]

    3、常见的test选项:

      (1)比较选项:

        -eq     //=

        -ne     // !=

        -gt      // >

        -ge     //>=

        -lt       //<

        -le      //<=

      (2)判断选项:

        -f      //文件

        -d     //目录

        -L     //

        -r -w -x      //读、写、可执行

      (3)关联选项:

        -o     //或

        -a     //和

        !       //非

5、逻辑运算

  与   &&

  或    ||

  非    !=

  这个逻辑运算符,前后对接的都是单独存在的命令

  [ $?  -eq 0 ]  &&  exit 0  ||  exit  1

6、算术运 算

  let 1+1     

  expr 1*1

  $[$1+10]

  $(($1/$2))

  + - * / % **

原文地址:https://www.cnblogs.com/wx00/p/11344157.html