zoukankan      html  css  js  c++  java
  • shell 脚本——第三节课 编程原理

    编程原理:
    1、编程介绍
       早期语言:

       驱动  硬件默认是不能使用的;
           不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动来进行"翻译";
       更趋近与硬件开发的工程师,要学习"汇编语言";而"汇编语言"被厂家所限制;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 -- 定义脚本解释器(普遍认为#为注释行,这里特殊)shebang
       #!/user/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
                使用全路径执行脚本,即可

    3、变量

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

       本地变量 local 在函数中使用

       变量类型:
           数值型:
                1、整形 int
                2、浮点型 float
                3、布尔值 0 1 (假真)

           字符串:
                1、普通字符及字符串
                2、数组

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

                弱类型语言 -- 编程语言可以自动识别变量类型
                【*多态* 一个数据具有多个属性,而最后使用的属性取决于和他进行运算的数据】

       传参
           $? -- 上一条命令的执行状态 0 正确 1-255 错误
           $1 $2 ... ${10} -- 命令后面传入脚本的数据,以空格为分隔符
           $# -- 传统传参数量 ${$#}
           $* -- 表示所有的传参 ,所有的传参以字符串形式进行输出
           $@ -- 表示所有传参,将所有的传参以列表的形式进行输出
           【工作中要对所有的传参进行操作的时候,就要考虑$*和$@】

       定义变量格式:
           NAME = VALUE (一个等于叫赋值,两个等号叫判断)
           我们通过命令declare 定义变量类型
           declare -i a=10 int() str()
           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
          expr 1*10
       $[$1+10]

          a=$[2+3]
          echo $a

       $(($1/$2))
          a=$((3/2))
          echo $a


       + - * / % **

    陌生人加油吧:

      人生最怕的几个字就是“试试”、“等等”、“看看”“想想”最大的失败不是跌倒,而是从来不敢奔跑,没有勇气付出行动,去实现自己的梦想,如果没有去行动,永远不会发现,自己也可以创造奇迹!

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    Android:CheckBox控件
    Android:RadioGroup,RadioButton
    Android:ImageView控件显示图片
    Spark:reduceByKey函数的用法
    HIve:beeline终端上在输错hive语句时,无论 Backspace还是delete 都删除不掉错误的语句,没有办法退格
    orchard-1.9.2-1.10.2汉化
    Hive:表1inner join表2结果group by优化
    hive:某张表进行分页
    hive:创建索引
    Android:后台给button绑定onClick事件、当返回项目到手机页面时提示是否退出APP
  • 原文地址:https://www.cnblogs.com/zwl123456/p/11347874.html
Copyright © 2011-2022 走看看