eval命令本身使用非常簡單,但是用處非常大,如果需要動態的構造命令,那麼必須使用eval命令。
eval命令參考:
命令格式:evalarg ?arg ...?
如果是乙個引數,那麼相當於把這個引數當作命令來執行,如果有多個引數,eval命令會把多個引數以concat命令風格連線起來然後再執行命令。
舉乙個最簡單的例子:
% set cmd "puts /"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
tcl tk例項詳解 string(二)
這裡對string命令中的幾個子命令使用例項進行一些解釋,以便於更加容易理解string命令中的各個子命令,本文僅對以下幾個string命令進行例項解析。分別是repeat replace reverse tolower totitle toupper trim trimleft trimright...
tcl tk例項詳解 string(三)
這裡對string命令中的幾個子命令使用例項進行一些解釋,以便於更加容易理解string命令中的各個子命令,本文僅對三個比較複雜的命令進行例項解析。分別是is class map和match三個子命令。string isclass strict?failindexvarname?string 如果s...
tcl tk例項詳解 catch和error
這兩個命令可以成對出現,catch命令捕獲乙個錯誤,error命令產生乙個錯誤。catch命令參考 error命令參考 catch命令可以用來捕獲乙個錯誤,乙個沒有捕獲的錯誤將終止指令碼的執行。error會產生乙個錯誤,error命令產生的錯誤如果沒有被catch捕獲將會導致指令碼的終止。catch...