Tcl의 문법

Similar documents
Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

슬라이드 1

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint 세션.ppt

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

4장.문장

Microsoft PowerPoint - chap10-함수의활용.pptx

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint Presentation

PHPoC vs PHP > 개요 개요 PHPoC 는솔내시스템 이자체개발한프로그래밍언어입니다. 당사의모든 PHPoC 제품들의펌웨어에는 PHPoC 인터프리터가내장되어있습니다. PHPoC 는범용스크립트언어인 PHP 를기반으로제작되었습니다. PHPoC 는매우간단하여 C 언어등

chap x: G입력

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

금오공대 컴퓨터공학전공 강의자료

슬라이드 1

슬라이드 1

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Microsoft PowerPoint - [2009] 02.pptx

Modern Javascript

Chapter 4. LISTS

Microsoft PowerPoint - ch01.ppt

4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열

APCPCWM_ :WP_GLOBAL_PFWP_GLOBAL_PF APCPCWM_ :WP_GLOBAL_PFWP_GLOBAL_PF 예제로보는 네트워크엔지니어를위한 Python 101

Microsoft PowerPoint UNIX Shell.ppt

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Visual Basic 반복문

Java ...

설계란 무엇인가?

Microsoft Word - Lab_080104A.docx

Microsoft PowerPoint 웹 연동 기술.pptx

쉽게 풀어쓴 C 프로그래밍

chap 5: Trees

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap06-2pointer.ppt

슬라이드 1

歯9장.PDF

K&R2 Reference Manual 번역본

PowerPoint Presentation

歯MW-1000AP_Manual_Kor_HJS.PDF

1 01 [ ] [ ] plus 002

Microsoft PowerPoint - additional01.ppt [호환 모드]

11장 포인터

PowerPoint 프레젠테이션

Microsoft PowerPoint UNIX Shell.pptx

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint 자바스크립트(1).pptx

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - ch07 - 포인터 pm0415

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

untitled

PowerPoint 프레젠테이션

Microsoft PowerPoint - CSharp-2-기초문법

C++ Programming

슬라이드 1

슬라이드 1

Cluster management software

03 상수, 변수, 자료형

chap x: G입력

쉽게

Javascript.pages

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Data Provisioning Services for mobile clients

Microsoft Word - Beginning Perl for Bioinformatics - Perl 기본문법.doc

PowerPoint 프레젠테이션

chap7.key

쉽게 풀어쓴 C 프로그래밍

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

Microsoft PowerPoint - chap06-1Array.ppt

PowerPoint 프레젠테이션

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - 제9강 문자열

슬라이드 1

제1장 Unix란 무엇인가?

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

5.스택(강의자료).key

Microsoft PowerPoint - chap12-고급기능.pptx

OCaml

The Pocket Guide to TCP/IP Sockets: C Version

Lab 3. 실습문제 (Single linked list)_해답.hwp

PowerPoint 프레젠테이션

Microsoft PowerPoint - lec3.ppt

Columns 8 through while expression {commands} 예제 1.2 (While 반복문의이용 ) >> num=0

Microsoft PowerPoint 유용한 PHP 함수들.ppt

ch15

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

본 강의에 들어가기 전

Microsoft PowerPoint - Chapter_04.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

The C++ Programming Language 5 장포인터, 배열, 구조체 5.9 연습문제 다음의선언문을순서대로작성해보자. 문자에대한포인터, 10개정수의배열, 10개정수의배열의참조자, 문자열의배열에대한포인터, 문자에대한포인터에대한포인터, 상수정수, 상수

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

Transcription:

월, 01/28/2008-20:50 admin 은 상당히 단순하고, 커맨드의 인자를 스페이스(공백)로 단락을 짓고 나열하는 정도입니다. command arg1 arg2 arg3... 한행에 여러개의 커맨드를 나열할때는, 세미콜론( ; )으로 구분을 짓습니다. command arg1 arg2 arg3... ; command arg1 arg2 arg3... 한행이 길어질때는, 행 끝에 백슬래쉬(\)를 두는 것으로 계속 이어쓸수 있습니다. command arg1 \ arg2 arg3... 다음의 간단한 예제를 보겠습니다. Hello World Hello World를 표시하는 스크립트입니다. puts 커맨드는 문자를 표시하는 커맨드입니다. 두개의 예제는 같은 결과를 나타냅니다. puts stdout {Hello World puts stderr {Hello World puts {Hello World puts stdout "Hello World" puts stderr "Hello World" puts "Hello World" 변수 Tcl의 변수에는 타입이 없습니다. 타입을 의식하지 않고 문자열이나 정수를 변수에 대입할수 있습니다. set 커맨드는, 변수에 값을 대입합니다. set 커맨드로 값을 생략하고, 변수명의 처음에 $을 붙여주면 값을 참조할수 있습니다. unset 커맨드는, 변수를 메모리에서 삭제합니다. set var 123 set var set var abc =>abc puts stdout $var =>abc unset var 산술연산 expr 커맨드는, 정수나 부동소수점의 연산이나 비교를 행합니다. 삼각 함수나 난수등도 사용할수 있습니다. expr 1 / 0 =>divide by zero expr 10 + 0x10 + 010 Page 1 of 8

4 expr 2.0 * asin(1.0).14159265359 set i 1 incr i 커맨드의 치환 대괄호[]는, 대괄호내의 커맨드를 커맨드의 출력결과로 치환해줍니다. set pi [expr 2.0 * asin(1.0)].14159265359 set pi.14159265359 더블 쿼테이션(Double Quotation Mark)과 중괄호 더블 쿼테이션과 중괄호는, 여러개의 문자열을 하나의 덩어리로 묶어줍니다. 단 더블 쿼테이션 내에서 변수와 커맨드는 치환이 되지만, 중괄호 내에서는 치환이 되지 않습니다. 백슬래쉬(\) 사용한다면 [ 과 $ 의 치환기능을 무효화 시킬수 있습니다. set var 123 puts "result = $var" =>result = 123 puts {result = $var =>result = $var puts "result = \$var" =>result = $var set var 123 puts "result = [pwd]" =>result = C:/ puts {result = [pwd] =>result = [pwd] puts "result = \[var]" =>result = [var] 포맷(format) scan과 format 커맨드는 ANSI C언어의 scan과 printf함수와 서식이 같습니다. %의 서식에 의하여 문자열을 포맷합니다. scan "123.456" "%d.%d" a b set a set b =456 format "%d.%d" $a $b.456 프로시져(Procedure) proc 커맨드는, 0개이상의 인자를 받는 프로시져를 정의할수 있습니다. 프로시져 안에서 정의된 변수는, 프로시져안에서만 참조할수 있습니다. 프로시져 밖에서 변수를 참조하고 싶다면, 변수가 선언된 프로시져와 참조할 프로시져안에서 global로 변수를 선언하면 됩니다. 프로시져는, 디폴트로 인자나, 가변인자를 받는것도 가능합니다. # 보통의 인자 set foo 3 proc add {a b { global foo return [expr $a + $b + $foo] Page 2 of 8

add 1 2 =>6 # 참조형 인자와 디폴트 인자 proc plus {a {b 1 { upvar $a r set r [expr $r + $b] return $r set foo 1 plus foo plus foo 2 =>4 # 가변 인자 proc sum {args { set s 0 foreach i $args { set s [expr $s + $i] return $s sum 1 2 sum 1 2 3 => 6 주석(comment) #로 시작하는 행은 주석의 행을 의미합니다. 스크립트 기술 도중 주석을 기술시에는 ;#가 되야합니다. # 주석 1 # 주석 2 \ 주석 2의 계속 puts {Hello World ; #주석 3 제어문 if, for, foreach, while, switch 커맨드는 제어문으로 사용하는 커맨드입니다. if, for, while의 조건식은 expr 커맨드와 같이 사용할수 있습니다. if, elseif, else문 set var 일 =>일 if {$var == "일" { puts stdout 1 set var 이 =>이 if {$var == "일" { puts stdout 1 else { puts stdout 2 set var 삼 Page 3 of 8

=>삼 if {$var == "일" { puts stdout 1 elseif {$var == "이" { puts stdout 2 else { puts stdout 3 for, foreach, while안에서는 continue, break 커맨드를 사용할수 있습니다. for 문 for {set i 1 {$i <= 3 {incr i { for {set i 1 {$i <= 5 {incr i { if {$i < 3 { continue =>4 =>5 for {set i 1 {$i <= 5 {incr i { if {$i > 3 { break while 문 set i 3 while {$i!= 0 { incr i -1 foreach 문 foreach i {A B C { =>A =>B =>C foreach {i j {A B C D E F { Page 4 of 8

puts stdout "$i $j" => A B => C D => E F switch 문 switch 사과 { 사과 {puts 100원 귤나무 {puts 80원 바나나 banana {puts 30원 default {puts 모름 00원 switch 사과 { 사과 {puts 100원 귤나무 {puts 80원 바나나 {puts 30원 default {puts 모름 00원 after커맨드는, 커맨드의 실행시간을 지연시키는 일을 합니다. after로 지정한 커맨드는 global scope에서 실행된다는것을 주의해야합니다. after 문 after 1000 ;# 1초 기다리다가.. after 1000 "set a 1" ;# 1초후에 커맨드를 실행 =>after#0 catch 커맨드는, 에러를 캐치(catch)하는데 사용됩니다. 에러가 발생하면 1을 리턴시켜주고, 아니면 0을 리턴시켜줍니다. catch 문 catch {expr 1+2 var =>0 catch {expr 1*_ var catch {expr 1/0 var catch {error bug var 에러처리 에러처리의 기술이 없다면, 에러발생시에 아래와 같은 창이 나타납니다. Page 5 of 8

에러처리는 잊지말고 꼭 처리해주어야 합니다. proc foo1 { { return -code error -errorcode 1 -errorinfo info message proc foo2 { { error message info 1 if [catch foo1] { puts "errorcode = $errorcode" puts "errorinfo = $errorinfo" if [catch foo2] { puts "errorcode = $errorcode" puts "errorinfo = $errorinfo" 배열 배열의 첨자에 문자열을 사용할수 있습니다. parray커맨드는, 배열의 요소를 표시합니다. set ary(사과) 100원 00원 set ary(귤나무) 80원 =>80원 set ary(바나나) 30원 0원 parray ary =>ary(사과) = 100원 =>ary(귤나무) = 80원 =>ary(바나나) = 30원 puts $ary(사과) 00원 array set ary { 사과 100원 귤나무 80원 바나나 30원 Page 6 of 8

parray ary =>ary(사과) = 100원 =>ary(귤나무) = 80원 =>ary(바나나) = 30원 puts $ary(사과) 00원 리스트 lisp와 비슷한 리스트가 준비되어 있습니다. set list { 사과 귤나무 바나나 =>사과 귤나무 바나나 lappend list 멜론 =>사과 귤나무 바나나 멜론 lindex $list 2 =>바나나 lsort $list =>귤나무 사과 바나나 멜론 문자열 문자나 문자열을 위한 커맨드가 준비되어 있습니다. if![string compare -nocase "abc" "ABC"] { puts 같다 =>같다 string toupper "abc" =>ABC string length "xyz" string length "귤나무" split usr/local/bin / =>usr local bin join {usr local bin / =>usr/local/bin / set str abc =>abc append str xyz =>abcxyz 바이너리 물론 바이너리 문자도 지원합니다. # ASCII to Binary set bin [binary format i 0x12345678] # Binary to ASCII binary scan $bin H2H2H2H2 var1 var2 var3 var4 puts 0x$var4$var3$var2$var1 =>0x12345678 스크립트의 인자 스크립트 파일의 인자는, argc와 argv 변수로 알아낼수 있습니다. set 스크립트이름 $argv0 set 인자의수 $argc set 제1인자 [lindex $argv 0] set 제2인자 [lindex $argv 1] set 제3인자 [lindex $argv 2] 첨부 파일 파일 크기 Page 7 of 8

32.png [1] 7.25 KB Links [1] http://www.tcltk.co.kr/files/32_0.png Page 8 of 8