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

  • 相关阅读:
    linux 短信收发
    sama5d3 环境检测 adc测试
    【Codeforces 723C】Polycarp at the Radio 贪心
    【Codeforces 723B】Text Document Analysis 模拟
    【USACO 2.2】Preface Numbering (找规律)
    【Codeforces 722C】Destroying Array (数据结构、set)
    【USACO 2.1】Hamming Codes
    【USACO 2.1】Healthy Holsteins
    【USACO 2.1】Sorting A Three-Valued Sequence
    【USACO 2.1】Ordered Fractions
  • 原文地址:https://www.cnblogs.com/liuyuanzzz/p/11347447.html
Copyright © 2011-2022 走看看