我對Tcl中的exec
和eval
有點困惑。在下面的例子:tcl:eval和exec混淆點
set cmd "mkdir new_folder";
exec $cmd
不與錯誤信息的工作:couldn't execute "mkdir new_folder" no such file or directory.
與eval
它的工作原理
set cmd "mkdir new_folder";
eval exec $cmd
我也試過這樣:
set cmd_1 "mkdir";
set cmd_2 "new_folder"
exec $cmd_1 $cmd_2
它也適用好。 那是什麼原因?
好吧,我想我知道原因。第一個程序失敗了,因爲它將'mkdir new_folder'視爲要調用的程序,因爲它放在單個字符串中;第二個程序工作,因爲'eval'將以下部分連接到命令列表中;第三個工作,因爲我將兩個分離的字符串傳遞給'exec'。 – 2015-02-12 03:18:07
如果您只是在製作目錄,請查看'file mkdir' ... – 2015-02-12 09:59:48