摘要
NS2网络仿真软件主要用到了TCL语言,TCL语言是很容易上手的。本文希望把TCL语言的基本语法和应用讲简单了,使得读者对NS2软件的应用有进一步的认识和实践。
1. 变量声明
set name "Joe"
puts "my name is $name"
set trueOrFalse [expr 0==1]
puts "1 is true, 0 is false: $trueOrFalse"
puts "He is [expr 2*3], but his IQ is [expr 100+20]"
4. 流程控制
a) if-else
set value 3
if { $value == 1} {
puts "3==1"
} elseif {$value == 2} {
puts "3==2"
} else {
puts "3==3"
}
b) switch
set value 3
switch $value {
1 {
puts "case 1"
}
2 {
puts "case 2"
}
3 {
puts "case 3"
}
default {
puts "Nothing"
}
}
c) for
for {set i 1} {$i <= 3} {incr i 1} {
puts "i = $i"
}
set i 1
while {$i <= 3} {
puts "i = $i"
incr i 1
}
5. 方法(或用户定义函数)
用户自定义方法,即procedures, 基本的语法为 proc name params body。
proc sum {a b} {
return [expr $a + $b]
}
set a 1
set b 2
set result [sum $a $b]
puts "The sum of a and b is $result"
6. 数组
set arr(1) 1
set arr(2) 2
set arr(3) 3
for {set i 1} {$i <= 3} {incr i 1} {
puts "arr($i) is $arr($i)"
}
set str "Hello, string"
puts "$str"
8. 输出
set file [open "/home/linux/Desktop/myfile" "w"]
puts $file "Hello, these words are going to be written to a file"
9. 注意事项(TCL语言初学者代码的问题绝大多数是空格,括号不标准所造成的!!!)
TCL语言的语法格式很严格的,严格程度跟python类似!不能多空格,不能少空格。比如:花括号之间必定要有一个空格;一条命令占用一行;elseif,或者else一定要和最后一个花括号在同一行,等等。读者在调试代码的时候一定要注意了。