두 개의 tcl 스크립트가 있습니다. 첫 번째 작업이 끝나면 두 번째 스크립트를 실행하고 싶습니다. 내가 어떻게 해?다른 tcl 스크립트에서 tcl 스크립트를 실행하는 방법은 무엇입니까?
답변
실제로 의미하는 바에 따라 다릅니다.
한 가지 방법은
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]
이 방법은 현재 프로세스의 디렉토리는 프로젝트 디렉토리가 위치한 곳입니다.
원본을 사용하여 두 번째 스크립트를 실행하면됩니다.
source "/tmp/whatever.tcl"
문제가 precicely TCL 내에서 TCL 코드를 실행하는 목표를 실현하려 방법의 톤이있다 공식화되지 않은 렸기 때문에이 일반적으로 정답된다. 코드 실행을 이해하는 것이 tcl itselve를 이해하는 데 중요한 점 중 하나이기 때문에 자세히 설명하지 않겠습니다.
소스 명령이 고전적인 방법으로 스크립트를 실행과 혼동해서는 안 소스
있다, 내가 스레드 스타터 요청했다 생각.
source 명령은 c/perl/php의 "include"명령과 같습니다. 반면 Java 나 python과 같은 언어는 "가져 오기"메커니즘 만 갖고 있습니다.
차이점은 해당 소스/바이너리/바이트 코드 파일에 링크 된 사용 가능한 패키지의 내부 데이터베이스를 만드는 것입니다. import 문을 작성함으로써 링크 된 소스 또는 바이트 코드 또는 바이너리 파일이로드됩니다. 따라서 추가 코드를 작성하지 않고도 더 많은 종속성을 관리 할 수 있습니다. tcl에서 이것은 네임 스페이스와 패키지 require 명령으로 달성 할 수 있습니다. 예 :
는이 source.tcl가 있다고 가정 : 당신이 그것을 전화처럼proc foo {bar} {puts "baz"}
set BAM "BOO"
지금, 당신은 당신의 "마스터"스크립트가 있습니다. 나는 그것을 "main"이라고 부른다. 이 내용이 있습니다
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은 프로그래밍 된 코드처럼 문자열이나 목록을 평가할 수 있습니다 (tcl에서는 모든 것이 문자열입니다). 전체 소스 파일을 문자열로로드해야합니다. 그런 다음 eval을 사용하여 분리 된 범위 내의 코드를 평가하고 주 소스 파일의 내용을 덮어 쓰지 않습니다.
set fp [open "somefile" r]
set code_string [read $fp]
close $fp
eval $code_string
- 1. tcl 스크립트에서 csh 스크립트를 실행하려면 어떻게해야합니까?
- 2. 인수를 사용하여 tchsh에서 tcl 스크립트를 실행하는 방법
- 3. Tcl 스크립트를 실행하는 데 어려움이 있습니다.
- 4. tcl exec 명령을 사용하여 파이썬 스크립트를 실행하는 방법
- 5. TCL
- 6. Tcl/SSL이있는 Tcl 7.x
- 7. tcl 스크립트에서 사용중인 Synplify 버전을 확인하는 방법
- 8. TCL 대체
- 9. TCL 스크립트 디버깅
- 10. Python에서 TCL 코드 실행하기
- 11. bash를 호출하는 Tcl 스크립트에서 암호 키를 인증하는 방법은 무엇입니까?
- 12. 스택은 Tcl
- 13. tcl tk 콤보 박스에서 선택을 한 후 스크립트를 실행하는 방법
- 14. TCL 8.4.13 용 TCL 바이트 코드 로더?
- 15. 실행 파일의 인수 인 tcl 스크립트를 디버깅하는 방법은 무엇입니까?
- 16. TCL 문자열 concat
- 17. 방법 TCL
- 18. 인쇄 TCL
- 19. 방법 TCL
- 20. 은 Tcl
- 21. TCL 문자열은
- 22. Tcl/Tk 초기화 스크립트에서 tk_messageBox에 문제가 발생했습니다.
- 23. Tcl 스크립트에서 게시 할 때 MalformedStreamException
- 24. git이 envoked tcl 스크립트에서 mkdir을 호출 할 수없는 이유는 무엇입니까?
- 25. 아파치 톰캣에서 Tcl 실행
- 26. 외부 redis 서버를 사용하여 tcl 스크립트를 테스트합니다.
- 27. TCL 캔버스 픽셀 맵
- 28. tcl tk teacup 파일에서 설치
- 29. 아파치를 통한 tcl 쉘
- 30. WinCVS - Python - TCL