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 -- 定义脚本解释器 (普遍认为#为注释行,这里特殊)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

    + - * / % **

  • 相关阅读:
    注册系统
    android登录界面
    android作业 购物界面
    第六周jsp作业
    JSP第四周
    JSP第二次作业
    JSP第一次作业
    第一周软件测试
    第九次安卓
    购物菜单
  • 原文地址:https://www.cnblogs.com/wangshilin/p/11365000.html
Copyright © 2011-2022 走看看