zoukankan      html  css  js  c++  java
  • 编程原理

    编程原理

    1、编程介绍

      [计算机只能识别二进制指令]

      程序 = 指令 + 数据

      根据服务的重心不同,我们分为面向过程编程,面向对象编程;

        面向过程  -- 侧重指令

        面向对象  -- 侧重数据

      又根据程序翻译成二进制指令的方式不同,我们分为低级语言和高级语言;

        低级语言  -- 汇编语言

        高级语言  -- 由于编译方式不同分为:

          解释型语言 -- 编译器 -- C、C++、java

          解释型语言 -- 解释器 -- shell、perl、python

        编程语言的执行方式:

          1)顺序执行

          2)循环执行 -- for、while、until

          3)选择执行 -- 分支 if、case

    2、shell脚本语言介绍

      2、1shell脚本中的条件判断

        整数条件判断

        -eq  // 等于

        -nq  // 不等于

        -gt  // 大于

        -lt  // 小于

        -ge  // 大于等于

        -le  // 小于等于

      例:添加用户

     1 #!/bin/bash
     2 #添加用户
     3 if id $* &> /dev/null;then
     4     echo "这个用户已存在"
     5 else 
     6     for i in $*;do
     7         useradd $i
     8         echo "123456" | passwd --stdin "$i" &> /dev/null
     9         echo "$i这个用户添加成功"
    10     done
    11     exit 0   
    12 fi

      2、2 优缺点

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

        缺点:没有库调用(与python区别)

      2、3 shell脚本

        shell脚本包括:

          1)命令

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

          3)逻辑关系

        关于shell脚本

          #!/bin/bash  --定义脚本解释器(必须写)

          #!/usr/bin/python

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

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

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

        shell的执行

          bash命令来执行脚本

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

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

    3、变量

      1)环境变量

      2)局部变量

        declare  -- 定义变量类型

      3)本地变量

        local  -- 在函数中使用

      4)变量类型

        数值型: 

            整型 int

            浮点型 float

            布尔型 blood

        字符串:

            普通字符及字符串

            数组

      5)编程语言的分类:
                  强类型语言  --  数值必须被定义,才能进行处理或运算
                  弱类型语言  --  编程语言可以自动识别变量类型
                  【*多态* 一个数据具有多个属性,而最后使用的属性取决于和它进行运算的数据】
      6)传参
              $?  --  上一条命令的执行状态 0 正确 1-255 错误
              $1  $2 ... ${10}  --  命令后面传入脚本的数据,以空格为分隔符
              $# --  统计传参数量         ${$#}  ?
              $* --  表示所有的传参,所有的传参以字符串形式进行输出
              $@ -- 表示所有传参,将所有的传参以列表的形式进行输出
              【工作中要对所有的传参进行操作的时候,就要考虑$*和$@】

        7)定义变量格式:
              NAME=VALUE  (一个等号叫赋值,两个等号叫判断)
              我们通过命令declare 定义变量类型
              declare -i 整数   int()  str()
              declare -a 数组
        8)变量命令:
              下划线的方式指定变量名称
              驼峰命名方式

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

    在脚本中,我们需要进行 语句分支; 说白了,就要做判断;判断就是使用test命令来实现;
        4、1使用格式:
            1)test [option] file
            2)[ 条件语句 ]
        4、2常见的test选项:
            比较选项:
                -eq 等于
                -ne 不等于
                -gt 大于
                -ge 大于等于
                -lt 小于
                -le 小于等于
            判断选项:
                -f 判断是否为普通文件
                -d 判断是否为目录文件
                -L  判断是否为连接文件
                -r -w -x  判断文件是否具有 读 写 执行 权限
            关联选项:
                -o  或
                -a  与
                !    非
            字符串判断:
                =  判断两边的字符串是否相同
                !=  不等于
                -z  判断字符串是否存在
                -n  和 -z 相反,存在为假,不存在为真

    5、逻辑运算

      与    &&   : 两边的命令,都为真,结果才是真

      或    ||       : 两边的命令,一边为真,就是真,同时为假,才是假

      非    !=

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

    6、算术运算

      *let 1+1
              let a=1+1
              echo $a
          expr 1*1
              expr 1 * 10
          *$[$1+10]
              a=$[2+3]
              echo $a
          $(($1/$2))
              a=$((3/2))
              echo $a
          + - * / % **

  • 相关阅读:
    codeforces C. Fixing Typos 解题报告
    codeforces B. The Fibonacci Segment 解题报告
    codeforces B. Color the Fence 解题报告
    codeforces B. Petya and Staircases 解题报告
    codeforces A. Sereja and Bottles 解题报告
    codeforces B. Levko and Permutation 解题报告
    codeforces B.Fence 解题报告
    tmp
    API 设计 POSIX File API
    分布式跟踪的一个流行标准是OpenTracing API,该标准的一个流行实现是Jaeger项目。
  • 原文地址:https://www.cnblogs.com/yxq-123/p/11360538.html
Copyright © 2011-2022 走看看