Bash基础特性(4)

终端:附着在终端的接口程序:

GUI:KDE, GNome, Xfce

CLI:/etc/shells,

bash特性之:命令hash(加速命令查找的机制)

 作用:缓存此前命令的查找结果:key-value

  key:搜索键

  value:值

 hash命令:

   hash:列出

   hash -d COMMAND:删除

   hash -r:清空

bash的特性之:变量

程序描述方式1:指令+数据

  指令:由程序文件提供;

  数据:IO设备、文件、管道、变量等

程序描述方式2:算法+数据结构

变量:变量名+指向的内存空间

  变量赋值:name=value

  变量类型:定义了变量的存储格式、表示数据范围、参与的运算

  编程语言:

    强类型变量语言

    弱类型变量语言:bash

      bash把所有变量统统视作字符型;不支持浮点数据

      bash中的变量无需事先声明;相当于,把声明和赋值过程同时实现

      声明:定义变量的类型,变量名

  变量替换:把变量名出现的位置替换为其所指向的内存空间中数据;

  变量引用:${var_name}, 多数情况下可省略{}

  变量名:变量名只能包含数字、字母和下划线,而且不能以数字开头;

  变量名命名规则:见名知义,命名机制遵循某种法则;不能够使用程序的保留字,例如if, else, then, while等等;

bash变量类型:

  • 本地变量:作用域仅为当前shell进程;
  • 环境变量:作用域为当前shell进程及其子进程;
  • 局部变量:作用域仅为某代码片断(函数上下文);
  • 位置参数变量:当执行脚本的shell进程传递的参数;
  • 特殊变量:shell内置的有特殊功用的变量,如$?

本地变量:

  变量赋值:name=value

  变量引用:${name}, $name

  查看变量:set

  撤销变量:unset name(此处非变量引用)

环境变量:

  变量赋值:

    (1) export name=value

    (2) name=value

      export name

    (3) declare -x name=value

    (4) name=value

      declare -x name

  变量引用:${name}, $name

    bash内嵌了许多环境变量(通常为全大写字符),用于定义bash的工作环境

查看环境变量:export, declare -x, printenv, env

撤销环境变量:unset name

只读变量:

  (1) declare -r name

  (2) readonly name

  只读变量无法重新赋值,并且不支持撤销;存活时间为当前shell进程的生命周期,随shell进程终止而终止;

bash特性之多命令执行:

使用格式:~]# COMMAND1; COMMAND2; COMMAND3; ...

逻辑运算:

  运算数:真(true, yes, on, 1)

  假(false, no, off, 0)

与:

1 && 1 = 1

1 && 0 = 0

0 && 1 = 0

0 && 0 = 0

或:

1 || 1 = 1

1 || 0 = 1

0 || 1 = 1

0 || 0 = 0

非:

! 1 = 0

! 0 = 1

短路法则:

~]# COMMAND1 && COMMAND2

  COMMAND1为“假”,则COMMAND2不会再执行;

  否则,COMMAND1为“真”,则COMMAND2必须执行;

~]# COMMAND1 || COMMAND2

  COMMAND1为“真”,则COMMAND2不会再执行;

  否则,COMMAND1为“假”,则COMMAND2必须执行;

猜你喜欢

转载自www.cnblogs.com/Donquixote-Corazon/p/11702803.html