shell脚本基础-bash变量和逻辑运行

Yyqingmofeige 2020-04-22

终端,附着在终端的接口程序:
GUI:KDE,GNome,Xfce
CLI:/etc/shells
bash的特性
命令行展开:~,{ }
命令别名:alisa,unalisa
命令历史:history
文件名通配:glob
快捷键:Ctrl+a,e,u,k,l
命令补全:$PATH
路径补全:
bash特性之命令hash
缓存此前的查找结果:key-value key:搜索键 value:值
hash命令
hash:列出
hash -d command:删除缓存中的命令
hash -r:清空
bash的特性之:变量
程序:指令+数据
指令:有程序文件提供
数据:IO设备、文件、管道、变量
程序:算法+数据结构
变量名+指向的内存空间
变量赋值:name=value
变量类型:存储格式、表示数据范围、参与的运算
编程语言:
强类型变量
弱类型变量:
  1. bash把所有变量统统视作字符型
  2. bash中的变量无需事先声明
    变量替换:把变量名出现的位置替换为其所指向的内存空间中数据
    变量引用:$(var_name),$var_name 一般括号可以省略
    变量名:变量名只能包含数字、字母和下划线,而且不能以数字开头,不能使用程序的保留字符,例如:if ,else,then,while
    shell脚本基础-bash变量和逻辑运行

bash变量类型:

本地变量: 作用域仅为当前shell进程

  1. 变量赋值:name=value
  2. 变量引用:${name},$name大多数情况可以省略大括号
  3. 查看变量set
  4. 撤销变量:unset name此处非变量引用,所以不用$符合

环境变量:
变量赋值:

  1. export name=value
  2. name=value
    export name
  3. declare -x name= value
  4. name=value
    declare -x name
    shell脚本基础-bash变量和逻辑运行

shell脚本基础-bash变量和逻辑运行
变量赋值:
局部变量:作用域仅为某种代码片段(函数上下文)
位置参数变量:当执行脚本的shell进程传递的参数
特殊变量: shell内置的有特殊功能的变量

  1. $?
    1. 1 0:成功
    2. 2 1-255:失败
      注意:bash内嵌了许多环境变量(通常全为大写)用于定义bash的工作环境
      PATH,HISTFILE,HISTSIZE, HISTFILESIZE , HISTCONTROL, SHELL, HOME, UID, PWD, OLDPWD
      查看环境变量:export,declare -x,printenv,env
      撤销环境变量:unset name
      只读变量:
      1. declare -r name
      2. readonly name
        只读变量无法重新赋值,并且不支持撤销:存储时间为当前shell进程的生命周期,随shell进程终止而终止
        shell脚本基础-bash变量和逻辑运行

bash特性之多命令执行:
~]# COMMAND1;COMMAND2;COMMAND3;.......
逻辑运算:
运算数:真(true,yes,on,1) 假(false,no,off,0)

  1. 与:
    1&&1=1
    1&&0=0
    0&&1=0
    0&&0=0
  2. 或:
    1 || 1=1
    1 || 0=1
    0 || 1=1
    0 || 0=0

  3. 非:
    !1=0
    !0=1
    短路法则:

~]# COMMAND1&& COMMAND2
COMMAND1为“假”,那么COMMAND2将不会运行
如果COMMAND1为“真”,那么COMMAND2必须运行
shell脚本基础-bash变量和逻辑运行

相关推荐