eval命令本身使用非常简单,但是用处非常大,如果需要动态的构造命令,那么必须使用eval命令。
命令格式:
eval arg ?arg ...?
如果是一个参数,那么相当于把这个参数当作命令来执行,如果有多个参数,eval命令会把多个参数以concat命令风格连接起来然后再执行命令。
如果是一个参数,那么相当于把这个参数当作命令来执行,如果有多个参数,eval命令会把多个参数以concat命令风格连接起来然后再执行命令。
举一个最简单的例子:
% set cmd "puts /"This is a tcltk example/""
puts "This is a tcltk example"
% eval $cmd
This is a tcltk example
一般在动态脚本中,主要是由脚本片断组成,脚本片断一般是一个变量,根据实际情况进行变量修改来达到执行不同脚本的目的。
puts "This is a tcltk example"
% eval $cmd
This is a tcltk example
一般在动态脚本中,主要是由脚本片断组成,脚本片断一般是一个变量,根据实际情况进行变量修改来达到执行不同脚本的目的。
% set a puts
puts
% set b stdout
stdout
% set c "haha"
haha
% eval $a $b $c
haha
puts
% set b stdout
stdout
% set c "haha"
haha
% eval $a $b $c
haha