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

    编程原理:
    1、编程介绍
    早期编程:
    驱动 硬件默认是不能使用的;
    不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序来进行翻译
    更趋近与硬件开发的工程师,要学习“汇编语言”;而汇编语言被厂家所限制;C C++的底层就是汇编语言;
    现在编程:
    基于高级语言,以及超高级语言,更好的让程序员能够实现编程功能

    编程语言的分类:
    高级语言、超高级语言需要翻译成计算机可读的语言(二进制指令)
    解释型 -- 逐行翻译,逐行执行 shell python JAVA
    bash -x filename.sh
    编译型 -- 一次编译,全部执行 C语言 C++ C# JAVA

    程序 = 指令+数据
    面向对象 -- 侧重于数据的编程语言
    面向过程 -- 侧重于指令

    编程语言的执行方式:
    【一行一行】
    1、顺序执行
    2、循环执行 -- for(遍历)while(循环条件)until(和while相反)
    3、选择执行 -- 侧重于指令

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

    shell脚本包括: 1、命令()
    2、变量(全局变量、局部变量、本地变量、传参)
    3、逻辑关系

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

    cat /etc/shells 查看当前系统支持的shell程序
    echo $SHELL 查看当前会话的shell程序
    /etc/passwd 指定了用户默认支持的shell程序

    shell的执行:
    1.bash命令来执行脚本
    -n 查看shell脚本的逻辑错误(注意:单词写错不管)
    -x 逐行显示执行的脚本程序(方便排错)
    2.授权 chmod + x filename.sh
    使用全路径执行脚本即可


    3、变量(一段命名的内存空间,用来存储临时)
    环境变量
    局部变量 declare -- 定义变量类型
    本地变量 local在函数中使用

    变量类型:
    数值型:
    1、整形 int(数值溢出)
    2、浮点型 float(溢出更加严重)
    3、布尔值 0 1(真假)(True False)
    字符串:
    1、普通字符及字符串
    2、数组

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

    传参
    $? 上一条命令的执行状态 (0正确,1-255错误)
    $1 $2 ..${10} 命令后面传入脚本的数据,以空格为分隔符
    $# 统计传参数量 ${$#}()
    $* 表示所有的传参以字符串的形式输出
    $@ 表示所有的传参以列表的形式输出
    定义变量格式
    NAME=VALUE
    通过declare定义变量类型
    declare -i代表整数
    declare -a代表数组
    变量命名:
    1、下划线的方式制定变量名称
    2、驼峰命名方式

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

    运算符:+ - * / % **


    #!/bin/bash
    #添加用户
    if id $* &> /dev/null; then
      echo "这个用户已经存在"
    else
      for i in $*;do
        useradd $i
        echo "123456" | passwd --stdin "$i" &> /dev/null
        echo "用户 $i 添加成功"
      done
      exit 0
    fi

  • 相关阅读:
    设计模式的六大原则 ---- 理论知识
    动手编写TCP服务器系列之一:日志文件
    Shell语言系列之一:文件处理
    给Amazon ec2 增加卷(Volume)并挂载到系统
    Java打包问题之一:打包出现java.io.IOException: invalid header field
    struct中长度为0的数组用途与原理
    child和childNodes的区别
    学习es6 setter/getter研究
    tabIndex-bootstrap中Get到的
    tml兼容性
  • 原文地址:https://www.cnblogs.com/liuyuanzzz/p/11347447.html
Copyright © 2011-2022 走看看