Tcl 文法-使い方をサンプルコードで解説

田中太郎
田中太郎

tcl言語のスクリプトについてサンプルコードを基に説明していきます

はじめに

tcl言語をサンプルコードを基に解説していきます

各サンプルコードは「sample.tcl」という名前で保存して

tclsh sample.tcl

で実行しています

標準出力

動作を簡単に確認できないので、まずはこれから

puts hoge
# 出力
# hoge

変数の定義

set <変数名> 値

で定義します

$<変数名>

で呼び出せます

set val hoge
puts $val
# 出力
# hoge

if文

if { <条件式>}{
}

で作成します

elseif, elseは「} elseif {」のように、「}」と「elseif」が同じ行にある必要があります

set val 1
if { $val == 3 } {
    puts "if"
} elseif { $val == 2 } {
    puts "elseif"
} else {
    puts "else"
}

# 出力
# else

for文

for { 変数の初期化 } { 条件式 } { incr 変数 }{
}

で作成します

for { set val 0 } { $val < 3 } { incr val } {
    puts $val
}

# 出力
# 0
# 1
# 2

while文

while { 条件式 } {
}

で作成します

「while { 条件式}」と「{」の間に空白がないとエラーになります

set val 0
while { $val < 3 } {
    puts $val
    incr val
}

# 出力
# 0
# 1
# 2

計算

expr 数字 (+, -, *, /, )数字

で計算します

exprがないと、文字列として読み込んでしまいます

set val 3*3
puts $val
set val [expr 3*3]
puts $val

# 出力
# 3*3
# 9

set 変数のあとに「[]」で囲むとコマンドの実行結果を変数に入れることができます

tclの実行結果を変数に格納する

set 変数のあとに「[]」で囲むとコマンドの実行結果を変数に入れることができます

set val1 3
set val2 [expr $val1*3]
puts $val2

# 出力
# 9

シェルのコマンドを実行

[exec <シェルコマンド>]でシェルのコマンドを実行できます

set val [exec ls]
puts $val

# 出力
# sample.tcl

他のtclファイルを読み込む

source <tclファイル>

でほかのtclファイルを呼び出せます

「puts test.tcl」と書き込んだtest.tclファイルを作成します

test.tcl
puts test.tcl

sample.tclには以下を書き込みます

sample.tcl
source test.tcl

# 出力
# test.tcl

関数(プロシージャ)

proc <関数名> { 引数1 引数2 … } {
<関数の中身>
}

で作成します

proc func { in1 in2 } {
    expr $in1 + $in2
}
puts [func 3 4]

# 出力
# 7

その他のよくある使い方

カレントディレクトリを返す

pwdでカレントディレクトリを返します

puts [pwd]

# 出力
# /home/vagrant

リストを作成する

list <変数1> <変数2> …

でリストを作成します

set val [list a b c d]
puts $val

# 出力
# a b c d

まとめ

tcl言語の基本的な使い方について、サンプルコードを基に説明しました

コメント

タイトルとURLをコピーしました