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