2017-05-18 2 views
0

tclsh 용 인라인 명령과 같은 것이 있습니까?tclsh 용 인라인 명령 사용

등 : tclsh -e "set a 7 ; puts $a"

은 물론 나는 위의를 시도하고 작동하지 않습니다. 하지만 그 아이디어는?

감사합니다, Expect

답변

2

거트, 당신은이 작업을 수행 할 수 있습니다.

expect -c 'set a 10; puts $a' 

-c 플래그는 명령 행 보다는 스크립트에 지정된 명령을 실행하는 방법을 제공합니다. -c에 대한 전체 인수는 작은 따옴표을 사용하여 인용 된 입니다. 이것은 쉘에게 변수 확장을 수행하지 않도록 지시합니다.

-c 플래그는 스크립트가 제어하기 전에 명령을 실행하는 데 사용될 수도 있습니다. 예를 들어, 같은 쉘에서 기대 호출하여 1 변수 디버그를 설정할 수 있습니다

if [info exists debug] { 
    puts "debugging mode: on" 
else { 
    set debug 0 
} 
0

표준 tclsh은 '아무튼 : 스크립트 내부

expect -c 'set debug 1' myscript.exp 

,이 변수의 값을 확인할 수 있습니다 티.

set argv [lassign $argv theUserScript] 
eval $theUserScript 

전화가 docmd.tcl과 같이 실행 : 당신은하지만 그것을 할 작은 스크립트를 만들 수 있습니다

tclsh docmd.tcl 'puts "Hi from Tcl"; after 1000; puts "Bye from Tcl"' 

심지어 처리 제대로 인수 (및 표준 입력/표준 출력) :

tclsh docmd.tcl 'foreach v $argv {puts [incr i]:$v}' abc def "ghi jkl" m123 

전달할 스크립트 주위에 작은 따옴표를 사용하는 것이 좋습니다.

0

간단하게 echo TCL 인터프리터에 대한 파이프 명령.

echo 'set a "Hello TCL!" ; puts $a ; exit' | tclsh