我有兩個tcl腳本。我想在第一次完成時運行第二個腳本。我該怎麼做?如何在其他tcl腳本中運行tcl腳本?
7
A
回答
15
取決於你的真正含義。
的一種方式是寫的第三(「主」)腳本,其將做
source /the/path/to/the/first.tcl
source /the/path/to/the/second.tcl
另一種方法是隻在第二個呼叫從上述例子添加到source
到第一腳本的底部。
修正案第一種方法:如果要執行的腳本位於同一目錄中的主腳本,一個慣用的方式來source
他們是
set where [file dirname [info script]]
source [file join $where first.tcl]
source [file join $where second.tcl]
這樣的採購會工作無論什麼當前進程的目錄和項目目錄所在的位置。
3
你只需要使用源代碼來運行第二個腳本。
source "/tmp/whatever.tcl"
1
雖然這通常是一個正確的答案,becouse的問題沒有得到precicely制定了有噸的方式才達到從TCL內部運行TCL代碼的目標。 我不想深入瞭解這一點,因爲理解代碼的執行是理解tcl itselve的一個重點。
有源
源命令不應與古典的方式執行腳本驚慌失措,我認爲線程啓動已要求。
source命令與c/perl/php中的「include」命令類似。 另一方面,像java或Python這樣的語言只有「導入」機制。
區別在於這些語言創建了一個內部數據庫的可用包,這些數據庫鏈接到相應的源/二進制/字節碼文件。通過編寫導入語句,加載鏈接的源代碼或字節代碼或二進制文件。這允許更深入的依賴管理而無需編寫額外的代碼。 在tcl中,可以使用命名空間和軟件包require命令來執行此操作。 例子:
假設你有這樣的source.tcl:
proc foo {bar} {puts "baz"}
set BAM "BOO"
現在,你有你的 「主人」 的劇本就像你怎麼稱呼它。我稱之爲「主」。它具有內容:
set BAM {my important data}
source source.tcl
#also the function foo can now be used, becouse source reads the whole script
foo {wuz}
set BAM
#will output "BOO"
exec命令
如果你能開始一個全新的解釋情況下,你可能的額外開銷活也做:
set BAM {my important data}
exec tclsh source.tcl
#The variable BAM will not be modified. You can not use the function foo.
EVAL命令
Eval可以評估一個字符串或一個列表(在tcl中,一切都是一個字符串),就像它將被編程的代碼一樣。 您必須將完整的源文件加載到字符串。然後使用eval來評估分離範圍內的代碼,以免覆蓋主源文件中的內容。
set fp [open "somefile" r]
set code_string [read $fp]
close $fp
eval $code_string
相關問題
- 1. 如何在Python中運行TCL腳本?
- 2. Tcl腳本
- 3. 命令在Ubuntu中運行Perl腳本中的Tcl(expect)腳本
- 4. 如何從tcl腳本運行csh腳本?
- 5. 我需要使用另一個tcl腳本的選項運行tcl腳本
- 6. tcl腳本運行不正常
- 7. 我有困難運行Tcl腳本
- 8. Eggdrop TCL正常運行時間腳本
- 9. TCL腳本調試
- 10. TCL腳本錯誤
- 11. 如何在tcl中進行選擇後運行腳本tk combobox
- 12. 如何在HTML中嵌入TCL腳本
- 13. 無法通過tcl腳本運行相同的tcl代碼?
- 14. 如何從php執行tcl腳本?
- 15. 調用從另一個TCL腳本Tcl腳本與多個arguements
- 16. 在TCL腳本中執行sed命令
- 17. 如何在tcl(expect)腳本中訪問bash變量腳本
- 18. bash腳本到tcl腳本轉換器
- 19. 執行TCL(expect腳本)在Windows
- 20. 錯誤的TCL腳本
- 21. 無法放入tcl腳本
- 22. TCL腳本不再工作
- 23. (?TCL)腳本從外殼
- 24. 如何從TCL腳本參數
- 25. 如何參數傳遞給TCL腳本Vivado GUI控制檯TCL
- 26. 我們如何使用TCL腳本運行xml文件?
- 27. 如何使用tcl exec命令運行python腳本
- 28. 如何同時運行多個tcl腳本
- 29. python和TCL:如何運行需要控制檯的腳本
- 30. 在tcl腳本中使用現有的tcl c程序