shell_04

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

       【一行一行执行】
       1、顺寻执行
       2、循环执行--for(遍历),while(循环条件),until(相反)
       3、选择执行--5分支 -- if,case
   2、shell脚本语言介绍
      优点:调用os(操作系统)的命令来实现所有功能;
      缺点:没有库调用(区分python)
    1、逻辑关系
    2、变量:全局变量,局部变量,本地变量,传参
    3、判断
    -------------------------------------
    shell的第一句话!!!
    #!/bin/bash         #定义脚本解释器

    /etc/shells --查看当前系统支持的shell程序
    echo $SHELL --当前会话的shell程序
    /etc/passwd -- 指定了用户默认支持的shell程序(/sbin/nologin)
 
    shell执行:
       bash命令执行脚本
          -n 查看shell脚本的逻辑错误(注意:单词写错错误不影响)
          -x 逐行执行显示脚本程序(便于排错)
     授权chmod u+x filename.sh
        使用全路径执行脚本
3、变量
    环境变量
    局部变量 declare--定义变量类型
    本地变量 local--在函数中使用
  
  变量类型:
       数值型:
          整形 int
          浮点型 float
          布尔值 0 1 (真 假)(True False)
       字符串:
          普通字符及字符串
          数组
       编程语言的分类:
          强类型语言--数值必须被定义才能被处理或运算
          弱类型语言--编程语言可以自动识别变量类型
          【多态 一种数据具有多种属性,最后使用的属性取决于和他进行运算的数据】
       传参
          $? -- 上一条命令的执行状体0正确 1-255错误
       $1 $2...${10}--命令后面传入脚本的数量,以空格为分隔符
       $# --统计传参数量
       $* --表示所有传参,所有传参以字符串输出
       $@ --表示所有传参,所有传参以列表输出
       定义变量格式:
          NMAE=VALUE(一个等号叫赋值,两个等号叫判断)
          通过declare定义变量类型
          declare -i整数
          declare -a数组
      变量命名
         下划线的方式指定变量名称
         驼峰命名方式
   4、test文件测试、条件判断
        在脚本中我们需要进行语句分支;--做判断
        判断就是使用test命令来实现
      使用格式:
         1、test [option] file
         2、[条件语句]
      常见test选项
         1、比较选项
            -eq  等于
            -ne  不等于
            -gt   大于
            -ge  小于
            -lt    大于等于
            -le   小于等于
 
      2、判断选项
            -f   FILE文件是否存在
            -d  FILE是否为普通文件
            -L  FILE是否为目录文件
            -r,-w,-x  FILE文件是否可读 可写 可执行
      3、关联选项
            -o 或
            -a 与
            !  非
        4、字符串判断
            = 判断两边的字符串是否相同
            !=  不等于
            -z 判断字符串是否存在
            -n 和-z相反 存在为真不存在为假
      5、逻辑运算
           与 &&
           或 ||
           非 !=
          此逻辑运算符,前后对接的都为单独存在的命令
      6、算术运算
           let 1+1
           expr 1*1
           $[$1+10]
           $(($1/$2))
           +  -  *  /   %  **
     程序:执行某个功能的一段代码
     程序包含:指令+数据+(逻辑关系)
             命令  变量
 
 
原文地址:https://www.cnblogs.com/lzqitdl/p/11347564.html