• bash变量和逻辑运行


    (一)bash特性及bash脚本编程初步

    • 如果相与计算机进行交互,必须有一个终端,以及附着在终端上的接口程序
      • GUI:KDE,GNome,Xfce
      • CLI:/etc/shells
    • bash特性
      • 命令行展:~,{}
      • 命令别名:alias,unalias
      • 命令历史:history
      • 文件名通配:glob
      • 快捷键:ctrl+a,e,u,k,l
      • 命令补全:$PATH
      • 路径补全
      • 命令hash:
        • 缓存此前命令的查找结果:key-value格式
        • hash命令
          • 直接单独使用,查看缓存的之前的命令
          • hash -d COMMAND:删除缓存的某个命令
          • hash -r:清空缓存
      • 变量:
        • 程序=指令+数据
          • 指令:由程序文件提供
          • 数据:IO设备,文件,管道,变量,等等
        • 程序=算法+数据结构
        • 变量名+指向的内存空间
        • 变量赋值:name=value
        • 变量的数据类型:存储格式,数据范围,参与的运算
          • 字符类型
          • 值类型
            • 精确数值类型
            • 非精确数值类型
        • bash使用弱类型编程语言,
          • 把所有变量统统视为字符类型,
          • 当做加减运算的时候,自动转化为数值类型
          • 不支持浮点类型,除非借助于第三方工具
          • 变量无需事先声明
        • bash中的变量引用:${Var_Name},花括号可以省略,$Var_Name。有一种情况不能省略花括号,就是字符串组合,比如${animal}s
        • 变量名:只能包含数字,字母,下划线,不能以数字开头,不能使用保留字
        • bash变量类型:
          • 根据作用范围
            • 本地变量:当前shell进程,子进程无效
              • 变量赋值:name=value
              • 变量引用:${Var_Name},花括号可以省略,$Var_Name
                • 双引号是弱引用,变量名会替换为其值
                • 单引号是强引用,变量不会替换为其值
              • 查看变量:set
              • 撤销变量:unset NAME
            • 环境变量:当前shell进程及其子进程
              • 变量赋值:
                • 方法一:export name=value,或者分开写,name = value 再export name
                • 方法二:declare -x name=value,或者分开写,name=value,再declare -x name
              • 变量引用:与本地变量一样。
                • bash内嵌了许多环境变量(通常为全大写字符),用于定义bash的工作环境,例如:PATH,HISTFILE,HISTSIZE,HISTFILESIZE,HISTCONTROL,SHELL,HOME,UID,PWD,OLDPWD
              • 查看变量:
                • export
                • declare -x
                • printenv
                • env
              • 撤销变量:unset NAME
            • 局部变量:当前shell进程中的某一个代码片段
          • 只读变量:
            • declare -r NAME表示把一个变量变成只读格式
            • 或者readonly NAME
            • 只读变量无法重新赋值,并且无法撤销,除非shell进程终止
          • 位置参数变量:向执行脚本的shell进程传递的参数
          • 特殊变量:shell内置的有特殊功用的变量
            • $?:上一个命令的执行状态结果,0表示成功,1-255表示各种失败
      • 多命令执行
        • 同一行中用分号分隔:COMMAND1;COMMAND2;COMMAND3;...
    • 逻辑运算
      • 真:true,yes,on,1
      • 假:false,no,off,0
      • 与,或,非,异或
      • 短路机制:如果前一个命令已经可以判断结果了,后面的命令就不执行了。
        • id $UserName || useradd $UserName
  • 相关阅读:
    js实现单张或多张图片持续无缝滚动
    h5 video标签在ios8,9无法设置静音
    使用async await通过for循环在图片onload加载成功后获取成功的图片地址
    div元素下的图片不能置顶解决办法
    setInerval实现图片滚动离开页面后又返回页面时图片加速滚动问题解决
    纯css实现单张图片无限循环无缝滚动
    nodejs的xlsx模块批量解析与导出excel数据表简单使用
    js获取文件后缀名方法
    nodejs对字符串进行base64转换和解析
    js中如果遇到低版本安卓设备调用setTimeout不生效解决办法
  • 原文地址:https://www.cnblogs.com/jacky1982/p/7630364.html
Copyright © 2020-2023  润新知