zoukankan      html  css  js  c++  java
  • shell脚本基本介绍

    1、编程介绍
      驱动 硬件默认是不能使用的
      CPU控制硬件、不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序来进行“翻译”;
      更趋近与开发的工程师,要学习“汇编语言”;而“汇编语言”被厂商所限制;
      C C++的底层就是汇编语言
    现在编程:
      基于高级语言,以及超高级语言,更好的让程序员能够的实现编程功能
    编程语言的分类:
      高级语言
      超高级语言需要翻译成计算机可读的语言(二进制指令)
      解释型--逐行翻译执行,shell python java
      bash -x filename.sh
      编译型---一次编译,全部执行C语言 C++ C# java
      程序=指令+数据
      面向对象---侧重数据的编程语言
      面向过程---侧重于指令
      编程语言的执行方式:
        1、顺序执行
        2、循环执行for(遍历) while(循环条件) until(while相反)
        3、选择执行---分支 if case

    2、shell脚本语言介绍
      优点:调用os(操作系统)的命令行,来实现所有功能。
      缺点:没有库调用(对比Python)

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

      ·shell的第一句话
      #!/bin/bash -- 定义脚本解释器

      /etc/shells -- 查看当前会话系统支持的shell程序
      echo $SHELL -- 查看当前会话的shell程序
      /etc/passwd -- 制定了用户默认支持的shell程序(/sbin/nologin)

      shell的执行:
      1、bash命令来执行脚本
      -n 查看shell脚本的逻辑错误
      -x 逐行显示执行的脚本程序
      2、授权 chmod + x filename.sh
      使用全路径执行脚本

    3、变量
      环境变量
      局部变量 declare:定义变量类型
      本地变量 local 在函数中使用

      变量类型:
        数值型:
        1.整型 int
        2.浮点型 float
        3.布尔值 0 1 (真Ture 假False)
      字符串:
        1.普通字符及字符串
        2.数组

       编程语言的分类:
        强类型语言--数值必须被定义,才能被处理或运算
        弱类型语言--编程语言可以自动识别变量类型
        (多态 一个数据具有多个属性,而最后使用的属性取决于他进行运算的数据)
        传参
          $? --上一条命令的执行状态 0 正确 1-255 错误
          $1 $2..${10} --命令后面闯入脚本的数据,以空格为分隔符
          $# --统计传参的数量
          $* --表示所有传参,所有的传参以字符串形式进行传输出
          $@ --表示所有传参,将所有的传参以列表的形式进行输出

       定义变量的格式:
        NAME=value =赋值 ==判断
        declare 定义参数类型
        declare -i 整数
        declare -a 数组
        变量命名:
          1.下划线的方式指定变量名称
          2.驼峰命名方式
      
    4、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相反

    5、逻辑运算
        与 -- && 两边命令都为真,结果为真
        或 -- || 俩边命令一边为真。结果为真,同时为假,结果为假
        非 -- !=

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

          [$? -eq 0] && exit 0 || exit 1

    6、算数运算
          let 1+1 

              let a =1+1

              echo $a

          expr 1+1

              let a =1+1

              echo $a

          $[$1+10]

               a=$[2+3]

              echo $a

          $(($1/$2))

               a=$((3/2))

              echo $a

  • 相关阅读:
    图的邻接链表实现(c)
    图的邻接矩阵实现(c)
    好文
    第13章 红黑树
    函数 setjmp, longjmp, sigsetjmp, siglongjmp
    域名解析
    wget www.baidu.com执行流程分析
    信号处理篇
    第11章 散列表
    第10章,基本数据结构(栈,队列)
  • 原文地址:https://www.cnblogs.com/liu694233527/p/11347409.html
Copyright © 2011-2022 走看看