3.2 高级变量与eval命令

高级变量

    Shell 变量一般是无类型的,但是 bash Shell 提供了 declare 命令用于指定变量的类型

    语法:declare [选项] 变量名

-r 声明或显示只读变量
-i 将变量定义为整型数
-a 将变量定义为数组
-A 将变量定义为关联数组
-f 显示已定义的所有函数名及其内容
-F 仅显示已定义的所有函数名
-x 声明或显示环境变量和函数
-l 声明变量为小写字母 declare –l var=UPPER

-u 声明变量为大写字母 declare –u var=lower

eval 命令

     eval 命令将会首先扫描命令行进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实现其功能的变量.该命令对变量进行两次扫描。

    语法:eval 变量引用

[root@CentOS7 bin]# CMD=hostname
[root@CentOS7 bin]# echo $CMD
hostname
[root@CentOS7 bin]# eval $CMD
CentOS7.miriam

    变量的间接引用

假设变量var的值是变量VAR,而变量VAR中有具体的值

    bash Shell提供了两种格式实现间接变量引用:

eval var=\$$var
var=${!VAR}
[root@CentOS7 bin]# NAME=CentOS7
[root@CentOS7 bin]# name=NAME
[root@CentOS7 bin]# echo $name
NAME
[root@CentOS7 bin]# echo $NAME
CentOS7
[root@CentOS7 bin]# eval name=\$$name
[root@CentOS7 bin]# echo $name
CentOS7
[root@CentOS7 bin]# echo ${!name}
CentOS7



猜你喜欢

转载自blog.csdn.net/m30_miriam/article/details/80326417
3.2
今日推荐