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

    一、编程介绍

        早期编程:

            驱动  硬件默认是不能使用的;

                不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序来进行“翻译;”

                更趋近与硬件开发的工程师,要学习“汇编语言”;而“汇编语言”被厂家限制;

                C、C++的底层就是汇编语言;

        现在编程:

            基于高级语言,以及超高级语言,更好的让程序员能够的实现编程功能

        编程序言的分类:

            高级语言、超高级语言需要*翻译*成计算机可读的语言(二进制指令)

            解释型 -- 逐行翻译、逐行执行shell  python  JAVA

                bash +x  fileanme.sh

            编译型 -- 一次编译,全部执行  C语言  C++ C#  JAVA

            

            程序 = 指令 + 数据

            面向对象 -- 侧重于数据的编程语言

            面向过程 -- 侧重于指令

        编程语言的执行方式:

            【一行一行】

            1、顺序执行

            2、循环执行 -- *for(便利)*  while(循环条件)  until(和while相反)

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

        

        

    例题:添加用户
       
    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   

    二、shell脚本语言介绍

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

        缺点:没有库调用(区分Python)

        shell脚本包括:

              1、*命令(非常重要)*

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

              3、逻辑关系

       

        shell的第一句话!!!(必须写)

        #!/bin/bash -- 定义脚本解释器(普遍认为#为注释行,这里特殊)shebang

        #!/user/bin/python

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

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

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

        shell的执行:

            1、bash命令的执行脚本

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

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

            2、授权 chmod +x filename.sh

                使用全路径执行脚本,即可

    三、变量

        环境变量

        局部变量declare命令 -- 定义变量的类型

        本地变量local在函数中使用

        变量类型:

            数值型:

                1、整型  int

                2、浮点型  float

                3、布尔值 0  1  (真   假) (True   False)

            字符串:

                1、普通字符及字符串

                2、数组

            编程语言的分类:

                强类型语言 -- 数值必须被定义,才能进行处理或运算

                弱类型语言 -- 编程语言可以自动识别变量类型

                【*多态* 一个数据具有多个属性,而最后使用的属性取决于和它进行运算的数据】

        传参

            $? -- 上一条命令执行的状态 0 正确   1-255  错误

            $1  $2 ... ${10} -- 命令后面传入脚本的数据,以空格为分隔符

            $# -- 统计传参数量

            ${$@# ???

            $* -- 表示所有传参,多有的传参以字符串形式进行输出

            $@ -- 表示所有传参,将所有的传参以流标的形式输出

            【工作中要对所有的传参进行操作的时候,就要考虑$*和$@】

        

        定义变量的格式:

            NAME=VALUE

            我们通过命令declare定义变量类型

            declare -i   整数  int()  str()

            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  判断字符串长度是否为0
                            -n  和 -z相反,存在为假,不存在为真

    五、逻辑运算

            与         && :俩边的命令,都为真,结果才是真
            或         ||     :俩边的命令,一遍为真,就是真,同时为假,才是假
            非         !=   :

        这个逻辑运算符,前后对接的都是单独存在的命令;

        例如: [ $? -eq 0 ] && exit 0 || exit  1

    六、算数运算

            *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

    + - * / % **
  • 相关阅读:
    Java集合类初始容量、加载因子、扩容增量
    并发之原子性、可见性、有序性
    多线程面试题
    MySQL引擎及选择
    SHA和MD5的Salt
    基于SSM的单点登陆05
    基于SSM的单点登陆04
    基于SSM的单点登陆03
    基于SSM的单点登陆02
    基于SSM的单点登陆01
  • 原文地址:https://www.cnblogs.com/cnxy168/p/11354643.html
Copyright © 2011-2022 走看看