博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tcl自动保存结果expect_TCL/Expect读取配置文件内容
阅读量:6914 次
发布时间:2019-06-27

本文共 1323 字,大约阅读时间需要 4 分钟。

config.xml配置文件如下:------------------------------------------------

name=tester ;#用户名

password=vmkid ;#密码

common.exp脚本如下:---------------------------------------------------

#!/usr/bin/expect

proc getConfig {configFile Key {Comment "#"} {Equal "="}} { ;#过程中如果参数有缺省值,使用花括号引起,并赋值

set Value "" ;# 记录过程返回的值

# 打开配置文件

set err [catch {set fileid [open $configFile r]} errMsg]

if {$err == 1} {

puts "errMsg : $errMsg"

return $Value

}

# 成功打开文件后, 一行一行的加以分析

set rowid 0 ;#记录当前行数,程序调试时打印调试信息使用的

while {[eof $fileid] != 1} { ;# 读取文件内容

incr rowid ;# 记录行数, 从一开始

gets $fileid line ;# 读出一行

# 先去掉注释, 再去掉两端的空格

set commentpos [string first $Comment $line] ;# 得到注释符号的位置

if { $commentpos != 0 } {

# 行以注释符号开头,忽略掉该行

} else {

if { $commentpos != -1 } { ;# 行中有注释符号,去掉注释

set line [string range $line 0 [expr $commentpos-1]]

}

set line [string trim $line] ;# 去掉两端的空格

# puts "$rowid : line : $line"

# 如果是空就继续循环

if { $line == "" } {

continue

} else {

set equalpos [string first $Equal $line] ;# 得到等号的位置

if { $equalpos != -1} {

# 如果就是找寻的key,结束循环

if { [string range $line 0 [expr $equalpos - 1]] == $Key } {

set Value [string range $line [expr $equalpos + 1] [string length $line]]

break

}

}

}

}

}

# 关闭文件

close $fileid

#返回值

return $Value

}

set val [getConfig "config.xml" "password"]

puts "---------val: $val"

exit

expect eof

分享到:

2011-03-12 18:04

浏览 6554

评论

转载地址:http://dcncl.baihongyu.com/

你可能感兴趣的文章
CDC,CPaintDC,CClientDC,CWindowDC
查看>>
信号退出【Linux学习笔记】kill及kill -9的用法及如何实现进程的优雅退出
查看>>
搜索引擎是怎么删除重复网页的
查看>>
Objective-C规范注释心得——同时兼容appledoc(docset、html)与doxygen(html、pdf)的文档生成...
查看>>
ARCGIS RUNTIME FOR IOS总结(六)
查看>>
批量scp脚本——从多台机器拷贝文件
查看>>
Oracle 11g安装图文攻略
查看>>
用VBA宏从一个工作薄复制内容到另一个工作薄
查看>>
Android架构分析之使用自定义硬件抽象层(HAL)模块
查看>>
VC6.0启动File-open和Project-add file to project崩溃的解决方法
查看>>
死锁线程探讨Java中的死锁现象
查看>>
Java HashMap的死循环 以及 LRUCache的正确实现
查看>>
地信快享论坛-见习版
查看>>
hdu1244(dp)
查看>>
VMwarevSphere 服务器虚拟化之二十九 桌面虚拟化之安装View副本服务器
查看>>
基于Levenberg-Marquardt训练算法的BP网络Python实现
查看>>
由判断三一点是否在三角形内部而引发的思考.....
查看>>
玩转动态编译:四、封装
查看>>
JavaScript 调试
查看>>
装腔指南_百度百科
查看>>