小窥shell语法之变量

1、变量的定义

变量就是一个字符串,可以指向一个内容,该内容可以使是一个路径,一个数字,一个命令等;也可以说是内存的一片区域的地址(类似于指针的概念)。

变量的存在使得原命令无法操作的变化目标变成固定,使得脚本在运行过程中更加宽泛。

2、shell中变量的命名规则

      变量名称可包含内容:' 字符 '、' _ ' 、' 数字 ';

      规则:不能用数字开头即可。

建议:变量的命名是任意的,但为了使所起的变量名字在自己使用以及别人代码的可读性而言,我们一般将短名字大写或者大类_小类。

小窥shell语法之变量
图 1 变量名称

3、变量的定义

      3.1 环境级别的变量

            如何设定:在当前环境中直接设定:Vname=value;

            使用范围:当前环境中;

            使用扩展:将该变量引用到下面的子进程中,export Vname=value;

            使用周期:当前环境关闭即清除。

小窥shell语法之变量
图 2 环境变量

      3.2 用户级别的变量

            如何设定:切换到对应的用户bash中,编辑~/.bash_profile,在该文件中设定即可:vim ~/.bash_profile;

            使用范围:当前用户下均可使用;

            使用扩展:export Vname=value;

            使用周期:不做其他处理,则永久生效。

小窥shell语法之变量
图 3 在文件中进行配置
小窥shell语法之变量
图 4 在用户下设置变量

 

3.3 系统级别的变量

            如何设定:在超级用户权限下编辑 /etc/profile;

            使用范围:改系统下均可使用;

            使用扩展:将其传递到shell中:export Vname=value;

            使用周期:不做任何处理,会永久生效。

小窥shell语法之变量
图 5 修改配置文件
小窥shell语法之变量
图 6 查看全局设定结果

 

说明:export可新增,修改或删除环境变量,export的效力仅及于该次登陆操作。

3、变量的转义

因为当变量中存在一些命令,特殊符号的含义时,此时需要进行转义。

转义符号:

\ :单个字符的转义;

" " :弱引用,批量转义字符,但不能转义  \  ` ` $ !

' ' :强引用,批量转义。

4、数组变量

普通变量的申请:

        a=1               ###给a变量赋值

        echo $a        ###查看a变量

        echo ${a}b   ###查看a变量且后面跟b

数组变量的申请:

        a=(1 2 3 4 5)     ###数组a的申请

        a=(`ls -l `)     ###数组a的值为命令执行的结果

        echo ${a[0]}     ###查看数组0的位置

        echo ${a[-1]}     ###查看数组-1的位置

        echo ${a[*]}     ###查看数组所有值,此时表示所有字符为一个字段

        echo ${a[@]}     ###查看数组所有值,此时单独输出每一个数

小窥shell语法之变量
图  7 查看变量

查看数组长度:

        ${#数组名[@/*]}     可得到数组的长度

小窥shell语法之变量
图 8 查看数组长度

删除数组:

        unset a[1]       ###清除A数组的1号元素;

        unset a          ###清除A数组

小窥shell语法之变量
图 9 删除数组

多个访问:

         {数组名[@或*]:开始下标:结束下标}

小窥shell语法之变量
图 10 按片查找

说明:在数组赋值时,元素下表存在会修改原下标;赋值时指定位置大于总长度,会追加。

【注】echo 查看单个变量 ,env 查看所有环境变量,set查看所有本地定义的环境变量。

5、命令的别名

临时设定:

        alias xie='vim'

永久设定:

  ###针对当前用户生效

        vim ~/.bashrc

        alias xie='vim'      

        source /.bashrc

  ###针对系统全局生效

        vim /etc/bashrc

        alias xie'vim'        

          source /etc/bashrc

删除当前环境中的alias

          unalias xie

命令演示:

小窥shell语法之变量
图  11 临时设定

 

小窥shell语法之变量
图 12 永久用户设定
小窥shell语法之变量
图 13 永久全局设定
小窥shell语法之变量
图 14 清除alias设定

 【注】当设定全局设定时,若只在某个用户下清除alias记录,则只在该用户下生效。