• Shell脚本编程原理


    1、编程介绍:
       早期编程
          驱动     硬件设备默认是不能使用的
                 不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序进行翻译
          更趋近于硬件开发的工程师,要学习“汇编语言”;而“汇编语言”被厂家所限制
       现在编程:
          基于高级语言,以及超高级语言,更好的让程序员能够实现编程功能
       编程语言的分类:
          高级语言、超高级语言需要翻译成计算机可读的语言(二进制指令)
          解释型 -- 逐行解释,逐行执行 (shell python)
          bash -x filename.sh
          编译型 -- 一次编译,全部执行 (C语言 C++ C#)
          程序 = 指令 + 数据
          面向对象 -- 侧重于数据的编程语言
          面向过程 -- 侧重于指令

       编程语言的执行方式:
         【一行一行】
          1、顺序执行 
          2、循环执行 -- *for(遍历)* while(循环条件) until(和while相反) 
          3、选择执行 -- 分支 if *case*

    2、shell脚本语言介绍
       优点:调用os(操作系统)的命令行,来实现所有功能;
       缺点:shell没有内嵌函数,没有函数库调用(区分于python)

       shell脚本包括:1、*命令*(非常重要)2、变量(全局变量、局部变量、本地变量、传参)

       shell脚本的第一句话!!!!(必须写)
           #!/bin/bash -- 定义解释器(普遍认为#为注释行,这里特殊)shebang
           #!/usr/bin/python

           /etc/shells -- 查看当前系统支持的shell程序
           echo $SHELL -- 查案当前会话的shell程序
           /etc/passwd -- 制定了用户默认支持的shell程序(/sbin/nologin)

           shell的执行:
               1、bash 命令来执行脚本
                   -n 查看shell脚本的逻辑错误(注意:防止单词写错)
                   -x 逐行显示执行的脚本程序(方便排错)

               2、授权chmod u+x filename.sh
                   使用全路径执行脚本,即可


    3、变量:一段被命名的内存空间

       环境变量
       局部变量 declare命令 -- 定义变量类型
       本地变量 local 使用在函数中

       变量类型:
           数值型:
               1、整型 int
               2、浮点型 float
               3、布尔值 0 1(False True)
           字符串:
               1、普通字符及字符串
               2、数组

           编程语言的分类:根据变量的不同,分为强类型语言与弱类型语言
               强类型语言:数值必须被定义,才能进行处理或运算
               弱类型语言:编程语言可以自动识别变量类型
               【*多态* 一个数据具有多个属性,而最后使用的属性取决于和他进行运算的数据】

           传参
               $? -- 上一条命令的执行状态 0 正确 1-255 错误
               $1 $2 ... ${10} -- 命令后面传入脚本的数据,以空格为分隔符
               $# -- 统计传参数量 ${$#}
               $* -- 表示所有的传参,以字符串的形式进行输出
               $@ -- 表示所有的传参,将所有的传参以列表的形式进行输出

           定义变量格式:
               NAME=VALUE(一个等号叫赋值,两个等号叫判断)
               通过命令declare定义变量类型
               declare -i a=10 定义a为整型,值为10
               declare -a 数组

           变量命名:
               1、下划线的方式指定变量名称
               2、驼峰命名方式


    4、test文件测试,条件判断
        在脚本中需要进行语句分支;说白了就是要做判断
        判断就是使用test命令来实现;
        使用格式:
           1、test [option] file
           2、[条件语句]

        常见的test选项:
           比较选项:
              -eq 等于
              -ne 不等于
              -gt 大于
              -ge 大等于
              -lt 小于
              -le 小等于
           判断选项:
              -e 判断文件是否存在
              -f 判断是否为普通文件
              -d 判断是否为目录文件
              -L 判断是否为链接文件
              -r -w -x 判断文件是否具有读、写、执行权限
           关联选项:
              -o 或
              -a 与
              ! 非

           字符串判断:
              =   判断两边的字符串是否相等
              !=  不等于
              -z   判断字符串长度是否为0 存在为真,不存在为假
              -n   判断字符串长度是否为0 存在为假,不存在为真

    5、逻辑运算
        与 && 两边的命令都为真,结果才为真
        或 || 两边的命令,一边为真,就是真,同时为假才是假
        非 !=

        这个逻辑运算符,前后对接的都是单独存在的命令;
        [ $? -eq 0 ]&& exit 0 || exit 1


    6、算术运算
        * let 1+1
        expr 1*1
        * $[$1+10]
        $(($1/$2))

  • 相关阅读:
    asp.net 启动关闭iis
    vue 界面关闭触发事件 ---实例销毁之前调用
    ElmentUI 设置禁止点击遮罩关闭 el-dialog 弹窗
    C#反射
    SQL Server 创建游标(cursor)
    文件解压缩
    文件流操作
    Linq查询
    C#线程 多线程 进程
    匿名类型和反射
  • 原文地址:https://www.cnblogs.com/4443056bdH/p/11348442.html
Copyright © 2020-2023  润新知