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

shell脚本基本介绍的更多相关文章

  1. shell脚本编程基础

       最近学习了shell脚本编程,感觉自己的脚本写的不太好,所以想把shell脚本相关的知识系统的整理一下,便于以后的学习和使用. 一.shell脚本基础    shell脚本是利用shell的功能 ...

  2. linux100day(day5)--编程原理和shell脚本

    通过前面的学习,我们对于linux文件系统有了一定的了解,我们接下来会初步接触编程原理和尝试编写shell脚本来实现功能. day05--编程原理和shell脚本初步认识 编程原理 在早期编程中,因为 ...

  3. Linux | Shell脚本的编写

    Shell 脚本的介绍 Shell脚本通过Shell终端解释器当作人与计算机硬件之间的翻译官,用户可以通过它执行各种命令,不仅有简单的,还有复杂的,比如:判断.循环.分支等这些高级编程中才有的特性.S ...

  4. shell脚本编程之for语句、if语句使用介绍

    介绍了shell脚本编程之for语句.if语句的使用方法. 上部: 面向过程: 顺序执行 选择执行: if, case 循环执行: for, while, until 一.for语句 格式:      ...

  5. 详细介绍Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  6. shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

    7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...

  7. Linux shell脚本基础学习详细介绍(完整版)二

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

  8. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  9. shell脚本编程基础介绍

    Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...

  10. 什么是Shell?Shell脚本基础知识详细介绍

    这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 ...

随机推荐

  1. DSL语言思想的应用

    背景 DSL语言的认知 DSL思想的应用 DSL的拓展思考 目标 业务限定 简化逻辑 提高效率 实现 业务提取 业务共性抽离 语法生成 语法实施

  2. cookie、session入门

    一.cookie是由http制定的 二.使用方法 1.原始方法 使用request接受Cookies请求头 使用response发送set-Cookies响应头 2.常用方法 response.add ...

  3. wpf DataGrid cell 背景色修改参考

    <DataTemplate.Triggers> <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource ...

  4. 一、mysql基础

    说明:学习视频参考尚硅谷--康师傅 第一章.数据库概述 1.为什么使用数据库?why? 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数 ...

  5. wake on lan magic packet

    局域网模式,必须电脑和手机在同一个 局域网,或者是网段内 外网模式  这个就是,你拿着手机,在任何地方,都可以开机电脑.

  6. K8S实现不同节点POD获取不同IP

    背景介绍 某混合云场景k8s,云上和云下的node,需要将同一个域名解析到不同的IP 方案 利用Coredns+2个第三方插件,fwdpolicy,conditional 编译Coredns(在win ...

  7. SpringBoot配置阿里云https提示端口占用问题

    1.因为要配置https,所以去网上找了一些资料,然后按照步骤,依次完成了以下步骤 ①在application.yml中加入配置 http: port: 12000 #原本的端口号server: po ...

  8. 裁员潮下,我月薪3W依旧坚挺

    近几年来产品经理一直是求职市场中的香饽饽: 年薪20w起.没有专业限制.职业天花板高,甚至行业中一直流传着一句话:产品经理是CEO的学前班. 在各种光环的加持下,不少应届生或有转行打算的职场人都将目光 ...

  9. No.1.6

    结构伪类选择器 根据元素在HTML中的结构关系查找元素 选择器 说明 E:first-child{} 匹配父元素中的第一个子元素,并且是E元素 E:last-child{} 匹配父元素中的最后一个子元 ...

  10. background-repeat属性(背景平铺)

    background-repeat属性(背景平铺) 默认情况下,如果一幅背景图像不足以占满整个容器时,就会在水平方向和垂直方向重复,以填满整个容器.然而,有时候却希望背景图像只出现一次,或只在某个方向 ...