본문 바로가기

Linux/tcl

[tcl] C언어에서는 argv의 첫번째 원소는 프로그램의 이름이 저장, Tcl 에서는 첫번째 인수가 저장 $argv : 명령행 인수 // list 자체 ex) puts $argv = puts { lists... } $argc : 명령행 인수의 갯수 argv0 : 실행되고 있는 script의 이름 set a 1 proc test {} { global channelid1 a puts $channelid1 "this is example text : nember = $a" } set channelid1 [open TEST.txt w] test close $channelid1 1. a에 대해 변수 선언 2. 프로시져 명령 test → 새로 정의할 프로시져의 이름 {} → 프로시져에게 전달할 파라미터 List { .. } .. 더보기
[Tcl] tcl 정규표현식 정규 표현식에 사용되는 연산자 메타(Meta) 문자 . : 어떤 글자든지 한 글자와 매칭 ^ : 문자열의 시작 부분을 나타냄 $ : 문자열의 끝 부분을 나타냄 반복 연산자 * : 바로 앞 패턴이 0번 이상 반복 됨 + : 바로 앞 패턴이 1번 이상 반복 됨 ? : 바로 앞 패턴이 나타지 않거나 1번 나타날 수 있음 {m} : 바로 앞 패턴이 m번 반복됨 {m,} : 바로 앞 패턴이 m번 이상 반복됨 {m,n} : 바로 앞 패턴이 m번 이상 n번 이하 반복됨 그룹 () : 패턴의 한 부분을 그룹화, 패턴에 매칭되는 부분을 기억함 열거 및 선택 [] : []안에 열거된 글자 중 하나와 같으면 매칭 된 것으로 봄 [^] : [^와] 사이에 열거된 글자가 아닌 다른 글자이면 매칭 된 것으로 봄 | : | 기호 .. 더보기
[Tcl] tcl 리스트 / 배열 리스트 추가 - lappend 존재하지 않는 변수가 주어졌을 때는 새로 리스트를 생성하고 이미 존재하는 변수가 주어졌을 때는 리스트를 덧붙임 [ 원본 변수의 값이 변함 ] set a "" // 비어 있음 lappend a 1 2 // 만약, $a로 선언하면 원본이 변하지 않는다. lappend a 3 4 5 set a 리스트 연결 - concat 주어진 argument들을 연결하여 하나의 리스트로 만든다. 원본 변수의 값이 변하지 않음 set a [list 1 2] set b [list 3 4] concat $a $b 리스트 원소 얻기 - llength 주어진 리스트의 원소 갯수를 리턴 llength { 1 2 3 4 } set a [ list a b c ] llength $a - lindex 주어진 리.. 더보기
[Tcl] tcl 문자열 조작 String 명령어 문자열에 관해서 할 수 있는 많은 연산들을 한데 모아 놓은 명령어 string compare str1 str2 : str1과 str2 를 사전 순으로 비교하여 같으면 0 , str1이 str2 보다 앞서면 -1, 뒤지면 1을 리턴 string first str1 str2 : str1이 str2 에서 첫번쨰로 나타나는 index를 리턴 string index str i : str의 i번째 문자를 리턴 string last str1 str2 : str1이 str2에서 마지막으로 나타나는 index를 리턴 string length str : str의 길이를 리턴 string match pattern str : glob style 패턴이 str에 매칭되면 1을 아니면 0을 리턴 string .. 더보기
[Tcl] tcl 제어구조 제어구조 - if then else 구문 set x 0 if { $x == 0 } { puts "Zero Value" } else { puts "Nonzero Value" } set x 0 if { $x == 0 } \ { puts "Zero Value" } \ else \ { puts "Nonzero Value" } // \를 이용해 if body가 여러 줄에 걸쳐 있음을 알려줌 set x 2 ; set y 6 if { $x != 0 && [expr $y / $x ] 더보기
[Tcl] tcl 기본문법 $touch test.tcl $vi test.tcl #!/usr/local/bin/tclsh 기본 문법 - 한 줄에 한 명령어 한 줄에 여러 개의 명령어를 쓰는 경우 ; 를 사용하여 각 명령어들을 구분시켜 줌 명령어가 길어져 여러 줄에 걸쳐 기술해야 할 경우 \ 를 줄의 맨 마지막에 붙여서 다음 줄이 계속 한 명령어에 해당한다는 것을 알 수 있다 set a 5; puts "a=$a" set \ a 5 puts "a=$a" - 주석 (comment) 줄의 시작에 # 을 사용하면 그 줄 전체를 comment로 간주한다 줄의 중간에 주석을 넣으려면 ; 사용하고 그 뒤에 # 을 쓴다 - 변수 set 명령어는 주어진 변수에 값을 할당하고 할당된 값을 리턴한다. Argument로 변수 이름만 주면 그 변수의 값을 .. 더보기