Xshell学习第三课:编程原理

  1. 编程介绍

驱动:硬件设备默认是不能使用的(cpu控制硬件)提供不同厂家啊硬件设备之间需要进行指令沟通,我们需要驱动程序来进行”翻译”;

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

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

程序 = 指令 + 数据

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

面向过程>>>>>>侧重于指令

面向对象>>>>>>侧重于数据

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

低级语言:汇编语言

高级语言:高级语言和超高级语言需要‘翻译’成计算机可读的语言

解释型—逐行翻译,逐行执行:shell python

Bash -x filrname.sh

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

编程语言的执行方式:[一行一行]

           1,顺序执行

2.循环执行—for while unitl(和while相反)

                   3.选择执行—分支if case*

  1. Shell脚本语言介绍

Shell语句是面向过程的,侧重于指令集;

Shell语句的基本结构组成:

  1. 命令
  2. 数据----变量(全局变量,局部变量,本地变量,传参)
  3. 逻辑关系

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

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

#!/usr/bin/python

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

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

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

Shell的执行:

       --bash命令来执行脚本

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

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

       --授权shmod +x filename.sh

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

    Shell没有内嵌函数,没有函数库的调用

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

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

  1. 变量

环境变量

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

本地变量 local 在函数中使用

 变量类型:

      数值型:整形(int),浮点型(float),布尔值(True,False)

      字符串:普通字符及字符串,数组

编程语言的分类:

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

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

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

传参:

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

      $1  -----

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

      ${10} -----

      $#    -----统计传参数量${$#}

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

      $@  ---表示所有的传参,所有传参以列表形式进行输出

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

定义变量格式:

       NAME=VALUE

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

--declare -i(整数) a = 10 int() str()

--declare -a (数组)

变量命名:

  1. 下划线的方式指定变量名称
  2.  驼峰命名方式
  3. Test文件测试,条件判断

在脚本中我们需要进行语句分支;说白了就要做判断,而判断就是使用test命令来实现的;

使用格式:

          1.test [option] file

          2.[ 条件语句 ]

常见的test选项:

--比较选项:-eq等于

            -ne不等于

            -gt大于

            -ge大于等于

            -lt小于

            -le小于等于

--判断选项:-f判断是否为普通文件

            -d判断是否为目录文件

            -L判断是否为连接文件

            -r -w -x 判断文件是否具有读写执行权限

--关联选项:-o或

            -a与

             !非

--字符串判断:

            = 判断连边的字符串是否相同

            != 不等于

            -z  判断字符串是否存在

            -n和-z相反,存在为假,不存在为真

  1. 逻辑运算

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

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

非     !=

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

  1. 算术运算

        *let 1+1

        --expr 1*1

        *$[$1+10]

        $(($1))

猜你喜欢

转载自www.cnblogs.com/huangchuan/p/11348380.html