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
     #!/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
       使用全路径执行脚本,即可
    3、变量
     环境变量
     局部变量  declare 命令 -- 定义变量类型
     本地变量  local 在函数中使用
     变量类型:
      数值型:
       1、整形  int
       2、浮点型  float
       3、布尔值  0 1 (真 假) (True False)
      字符串:
       1、普通字符及字符串
       2、数组
      编程语言的分类:
       强类型语言  --  数值必须被定义,才能进行处理或运算
       弱类型语言  --  编程语言可以自动识别变量类型
       【*多态* 一个数据具有多个属性,而最后使用的属性取决于和它进行运算的数据】
     传参
      $?  --  上一条命令的执行状态 0 正确 1-255 错误
      $1  $2 ... ${10}  --  命令后面传入脚本的数据,以空格为分隔符
      $# --  统计传参数量   ${$#}  ?
      $* --  表示所有的传参,所有的传参以字符串形式进行输出
      $@ -- 表示所有传参,将所有的传参以列表的形式进行输出
      【工作中要对所有的传参进行操作的时候,就要考虑$*和$@】
     定义变量格式:
      NAME=VALUE  (一个等号叫赋值,两个等号叫判断)
      我们通过命令declare 定义变量类型
      declare -i 整数   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
     + - * / % **
     
  • 相关阅读:
    C#MessageBox使用
    ListBox的使用
    中文乱码的几种情况以及解决方法
    使用Application
    Android笔记之标题栏的各种操作
    Android笔记之日期选择器
    Viewpager制作自动左右循环滑动
    JAVA入门到精通-第17讲-排序
    ***JAVA入门到精通-第14讲-final-作业评讲
    JAVA入门到精通-第13讲-抽象类-接口
  • 原文地址:https://www.cnblogs.com/dongxu2019/p/11353728.html
Copyright © 2011-2022 走看看