zoukankan      html  css  js  c++  java
  • shell脚本day03-编程原理

    一、编程介绍

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

    1.   早期编程:驱动和硬件默认不能使用,但不同厂家设备之间需要进行指令沟通,我们需要驱动来进行翻译;更趋紧与硬件开发的工程师,要学习汇编语言,而汇编语言被厂家所限制。C,C++的底层就是汇编语言
    2. 现在编程基于高级语言,以及超高级语言,更好的让程序员能够实现汇报功能。高级语言、超高级语言需要翻译成计算机可读的语言(二进制指令)
    3. 汇编语言的分类
      • 解释型---逐行解释,逐行执行 shell python java
      • 编译型---一次编译,全部行 C C++ C# java
      • 面向对象---侧重于数据的编程语言
      • 面向过程---侧重于指令
    4. 编程语言的执行方式:

          【按行执行】

      • 顺序执行
      • 循环执行---for(遍历) while(循环条件) until(和while相反)
      • 选择执行---分支 if case

    二、shell脚本语言介绍

      shell语句是面向过程的,侧重于指令集。  

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

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

      shell语句的基本组成成分:

      • 命令(重点!)
      • 变量(全局变量、局部变量、本地变量)
      • 逻辑关系
      • 数据-变量(转参)

      shell没有内嵌函数,没有函数库调用,没有调用库的接口

    三、shell的第一句话(重要)

      

    #!/bin/bash //定义脚本解释器(普遍认为#为注释行,这里特殊)
    #!/usr/bin/python
    
    /etc/shells //查看当前系统支持的shell程序
    echo $shell  //查看当前会话的shell程序
    /etc/passwd //指定了用户默认之前的shell程序(/sbin/nologin)

      shell的执行:

      1. bash命令来执行脚本
        • -n 查看shell脚本的逻辑错误(注意:单词写错无法查看)
        • -x 逐行显示执行的脚本程序(方便排错)

           2. 授权 chmod u+x filename.sh

            使用全路径执行即可

    四、变量 (一段未命名的内存空间)

    1. 环境变量
    2. 局部变量 declare命令---定义变量类型
    3. 本地变量 local在函数中使用  
    4. 变量类型
      • 数值型
        • 整形 Int
        • 浮点型 float
        • 布尔值 true false 0 1
      • 字符串
        • 普通字符及字符串
        • 数组
      • 编程语言的分类
        • 强类型语言---数值必须被定义,才能进行处理或运算
        • 编程语言可以自动识别变量类型

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

      5.传参

      • $? --- 上一条命令的执行状态 0 正确 1-255错误
      • $1 $2 ... ${10} --- 命令后面传入脚本的数据,以空格为分隔符
      • $# --- 统计传参的数量  //${$#}取该条命令的最后一个参数
      • $@ --- 表示所有的传参,所有的传参以列表的形式进行输出
      • $* --- 表示所有的传参,所有的传参以列表的形式进行输出
      • 工作中应考虑$@于$*的区别

      6.定义变量格式

      • NAME=VALUE(一个等号叫赋值,俩个等号叫判断)
      • 通过命令declare定义变量类型
      • declare -l a=10  //相当于 int()
        declare -a //数组
          

      7.变量命名有俩种方式,分别为以下划线的方式指定变量名称和以驼峰命名方式命名

    五、test文件测试、条件判断

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

      1.使用格式

      • test[opthon]file
      • [ 条件语句 ] //一定要在中括号内加入俩个空格

      2.常见的test选项

    比较选项 -eq 等于 -ne 不等于 -gt 大于 -ge 大于等于 -le 小于等于 -lt 小于
    判断选项  -f 判断是否为普通文件 -d 判断是否为目录文件 -l 判断是否为连续文件  -r-w-x 判断文件是否具有读写执行权限
    关联选项 -0 或 -a 与 ! 非
    字符串判断 = 判断俩边的字符串是否相等 != 不等于 -z 判断字符串是否存在 -n 作用与-n相反

    六、逻辑运算与算术运算

      与:&& ; 或 :|| ;非:!= 

      let !+1

      expr 1*1

      $[$1+10]

      $(($1/$2))

       

        

  • 相关阅读:
    git branch查看不到分支的名字解决办法
    input输入框如何只能输入非零开头的正整数
    如何修改git分支名名称
    JavaScript如何把字符串中每个单词首字母转化为大写
    JavaScript原型链的理解
    JavaScript高级程序设计第三版学习笔记(一)之数据类型区分详谈
    Vue中父子组件执行的先后顺序探讨
    我是不是该回来写点东西
    转载:引用 struts2标签详解
    mysql的重装问题......我自己的心得
  • 原文地址:https://www.cnblogs.com/ljx1/p/11348182.html
Copyright © 2011-2022 走看看