==两种for循环的写法 for {set i 0} {$i<=10} {incr i} {#i默认增量是1,即等价incr i 1。注意这个反括号一定要写在这行行末:args: should be "for start test next command" ............ .............} Q:能不能改为i为我指定的几个数就好。比如我指定i为 3 5 6 7 9这几个数? 谢谢。 foreach i { 1 3 5 7 9 } { puts "$i" } 注:expect 用的是tcl语法,不是shell语法,或者用switch ==for/while循环写法 [15:33:05-Bob@hzling08:~/test/tcl]-(1109)No.108->$ cat tclfor.test #!/usr/bin/expect -- # http://bbs.chinaunix.net/thread-2301733-1-1.html # for Bob testing # puts "---1---" for {set i 0} {$i < 10} {incr i} { puts "I inside first loop: $i" } puts "---2---" for {set i 3} {$i < 2} {incr i} { puts "I inside second loop: $i" } puts "---3---" puts "Start" set i 0 while {$i < 10} { puts "I inside third loop: $i" incr i puts "I after incr: $i" } set i 0 incr i puts "---4---" puts "$i" # This is equivalent to: set i [expr {$i + 1}] #expect里的加减法 puts "---5---" puts "$i" 运行: [15:33:09-Bob@hzling08:~/test/tcl]-(1110)No.109->$ ./tclfor.test ---1--- I inside first loop: 0 I inside first loop: 1 I inside first loop: 2 I inside first loop: 3 I inside first loop: 4 I inside first loop: 5 I inside first loop: 6 I inside first loop: 7 I inside first loop: 8 I inside first loop: 9 ---2--- ---3--- Start I inside third loop: 0 I after incr: 1 I inside third loop: 1 I after incr: 2 I inside third loop: 2 I after incr: 3 I inside third loop: 3 I after incr: 4 I inside third loop: 4 I after incr: 5 I inside third loop: 5 I after incr: 6 I inside third loop: 6 I after incr: 7 I inside third loop: 7 I after incr: 8 I inside third loop: 8 I after incr: 9 I inside third loop: 9 I after incr: 10 ---4--- 1 ---5--- 2 ===if的写法 if { $sync_flag == "true" } { puts "Sync start at [clock format [clock seconds]]" catch {eval exec ${TOOL_HOME}/bin/${sync_cmd} ${sync_parm} } output puts $output if { $output eq "SYNC complete!" } { puts "SYNC complete!" } else { puts "SYNC error!" exit 1 } puts "Sync end at [clock format [clock seconds]]" } ===ping的例子 set p_loop 5 while { $p_loop } { send_user "\nStpe 1 Ping to server..." set timeout 60 send "ping 10.1.1.1 -c5\r" expect { "64 bytes" { send_user "ok" set p_loop 0 } timeout { set p_loop [expr $p_loop-1] #expect里的加减法 send_user "failed.\n" } eof { send_user "ping 10.1.1.1 -c5 FAIL\n" exit 1 } } ===expect读取文件的例子 #!/usr/bin/expect -- # http://scmbob.org/counting_file_lines.html #open a file set fd [open "/home/xiabao/myfile.txt" r] set number 0 # read each line while { [gets $fd line] >= 0 } { incr number } puts "Number of lines: $number" close $fd
相关推荐
TCL提供了一系列的控制结构来实现条件判断和循环控制,包括`if`语句和`while`、`for`循环等。 ```tcl #!/usr/bin/tclsh set flag true if {$flag} { puts "True!" } else { puts "False!" } ``` 这里展示了如何...
1. **循环结构**:利用Tcl的循环结构(如`foreach`、`while`)来重复执行某些操作。 2. **条件判断**:通过`if`语句根据不同的条件执行不同的代码块。 3. **错误处理**:利用`catch`命令来捕获并处理异常情况。 4. *...
- **循环结构**:使用`foreach`、`while`等循环结构来重复执行某些操作。 - **错误处理**:通过`timeout`、`abort`等关键字来处理超时或异常情况。 #### 九、性能优化 为了提高Expect脚本的执行效率,开发者需要...
Gnuplot是一款强大的命令行图形绘制工具,常用于...这些手册将详细介绍这三个工具的使用方法、示例和高级特性,对于理解和掌握它们的用法非常有帮助。通过学习,你可以更好地处理数据可视化、文本分析和自动化任务。
- 循环语句(如 `for` 和 `while`)。 - 条件判断语句(如 `if` 和 `switch`)。 - 异常处理机制。 4. **函数与过程:** - 如何定义和调用函数。 - 参数传递方式。 - 返回值与错误处理。 5. **字符串与列表...
- **2.5 控制结构**:探讨条件语句(如if/else)、循环(如while)等流程控制机制。 - **2.6 事件绑定**:解释Tk中如何通过绑定特定事件来触发脚本代码执行。 - **2.7 子进程**:讨论在Tcl中如何启动外部程序或...
2. **命令调用**:TCL的核心是命令,如`proc`用于定义过程,`if`、`else`、`switch`用于条件判断,`foreach`、`while`进行循环操作。 3. **字符串操作**:TCL提供了丰富的字符串处理命令,如`string length`获取...
JavaScript的基础语法包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象和数组)、操作符(算术、比较、逻辑、三元运算符)以及流程控制语句(if...else、switch、for、...
支持条件语句(`if-then-else`)、循环(`for`、`while`)、函数定义等。 2. **命令操作**:TCL的核心是其内置的一系列命令,如字符串操作、数学计算、文件I/O等。例如,`string`命令用于处理字符串,`expr`用于...
本书内容翔实、涉及领域广泛,并且提供了详细的例子和大量的参考资料(包括书籍、电子文档和Internet站点),是一本学习、使用和管理Linux不可多得的好书。 目 录 译者序 前言 第一部分 Red Hat Linux的介绍与安装 ...
例如,`puts`用于输出内容到标准输出,`append`用于连接字符串,`if`、`for`和`while`等控制结构用于流程控制。 3. **脚本文件** Tcl脚本通常保存在扩展名为`.tcl`的文件中,可以通过解释器`tclsh`执行。例如,`...
- **控制流程**:条件语句(if...else)、switch语句、循环(for、while、do...while)。 - **函数**:函数声明、函数表达式、箭头函数、参数默认值、rest参数和spread运算符。 - **对象和原型**:对象的创建、...