用法例一:将字符串解析成命令执行
[root@localhost ~]# cmd="ls -l /etc/passwd"
[root@localhost ~]# eval $cmd
-rw-r--r-- 1 root root 1638 Mar 3 00:43 /etc/passwd
用法例二:
程序运行中根据某个变量确定实际的变量名
[root@localhost ~]# name1=john
# 定义变量name1
[root@localhost ~]# name2=wang
# 定义变量name2
[root@localhost ~]# num=1 # 使用该变量确定真实的变量名name$num
[root@localhost ~]# eval echo "$"name$num
John
用法例三:将某个变量的值当做另一个变量名并给其赋值
[root@localhost ~]# name1=john
[root@localhost ~]# name2=wang
[root@localhost ~]# eval $name1="$name2" # 等价于john="wang"
[root@localhost ~]# echo $john
wang