十二、bash变量                变量(一段有名称的内存空间)
   变量名(这段内存空间的名称)
  向变量中存储数据的过程,称为赋值操作:
  变量的类型: 整型
    字符型
  
  变量: 强变量:使用之前必须事先予以声明;必须声明变量类型
   弱变量:在使用之前无需生命,不需要指明变量类型
    注意:bash变量不需要定义变量类型,属于弱变量
  变量的赋值方法:  VARNAME=VALUE  
   其含义:将某数值(VALUE)通过赋值操作(=)存储于特定的内存空间中(VARNAME)
   bash中变量名称的命名规范:
    1.变量名只能以“_”或“字母”为起始字符,后面的其他字符可以是任意字母,数字或下划线
    2.变量名中的字母是大小写敏感的
    3.命名的书写格式:
     全大写
     全小写
     驼峰式
     连接式
    4.变量名要能做到见名知意
    5.变量名不能与已知变量或bash的内置变量重复
  bash根据变量作用划分:
   全局变量(环境变量):作用范围为整个shell进程,包括其子shell
   本地变量:作用范围为当前登录时打开的shell进程,不包括其子shell
   局部变量:作用范围是当前函数
  bash根据声明划分
   bash内置变量: 普通内置变量
     位置参数变量
     特殊变量:
      $?:展开为最近一次执行的命令的状态返回值(退出状态码)用以表示最近一次执行的命令是否成功执行
      $#:不包括$0在内的其余的位置参数的个数,以十进制数字表示
      $*:从$1开始展开为位置参数。当使用双引号引用展开结果时,他展开为一个单独的字符串
      $$:展开为当前shell的进程标识符
     自定义变量
   变量的使用:
    1.变量的声明和赋值
     声明全局变量(环境变量)
     export varname
     export varname=value
    declare:Set variable values and attributes.
     格式: declare [-aAfFgilrtux] [-p] [name[=value] ...]
     常用的选项:
      -a to make NAMEs indexed arrays (if supported)  声明索引数组
           -A to make NAMEs associative arrays (if supported) 声明关联数组
            -i to make NAMEs have the `integer' attribute 声明整型变量
           -l to convert NAMEs to lower case on assignment 声明变量并将变量值中的字目转换为小写字母
           -r to make NAMEs readonly  声明只读变量:该变量仅能进行一次赋值操作
           -t to make NAMEs have the `trace' attribute 
           -u to convert NAMEs to upper case on assignment 声明变量并将变量值中的字母转换为大写字母
           -x to make NAMEs export 声明变量并将其导出为全局变量
     声明本地变量
     声明局部变量
    2.查看环境变量
     set命令
      查看和改变shell属性的值及查看shell变量的变量名和变量值
     export命令
      查看变量名称,也可以为变量赋值
     env命令
    3.查看变量的值
     echo ${VARNAME}
    4.撤销变量的赋值及变量声明
     unset VARNAME
   有关于保存变量的shell配置文件
    通用配置文件:
    /etc/bashrc
    /etc/profile
    /etc/profile。d/*
    私人配置文件:
    ~/.bashrc
    ~/.bash_profile
    注意: 1.一般情况下,变量随用随声明,除非有必要,否则不建议修改配置文件的内容
     2.声明的变量在使用完之后,最好用unset命令将其撤销