source: http://blog.csdn.net/hittata/article/details/7629963
eval 就是将命令执行两次
1.第一次,执行变量替换2.第二次,执行替换后的命令串
- #!/bin/bash
- g="|"
- eval ls $g wc -l
- #执行第一次命令串变为: ls | wc -l
- #执行第二次获得结果
- echo \$$#
- eval echo\$$#
- #执行第一次命令串为:echo $n
- #再执行一次替换后的命令串
- com="cat ev.sh"
- echo $com
- eval $com
- #执行第一次命令变为 cat ev.sh
- #执行第二次命令为查看ev.sh的内容