在Expect Script

时间:2018-05-17 22:45:42

标签: shell unix expect

我正在尝试编写一个期望脚本(第一次),而我正在尝试的是从文本文件(input.txt)中读取行并将它们作为特定变量分配到expect脚本中。我的文本文件从Web应用程序获取输入,将有5行(我的脚本有5个变量)。由于我已经知道每一行代表什么,我想为它们创建特定命名的变量..

第1行是$ user

第2行是$ password

第3行是$ logs1

第4行是$ logs2

第5行是$ containerName

我查看了这个链接:Read file into String and do a loop in Expect Script并看到他们使用了

    set f [open "host.txt"]
    set hosts [split [read $f] "\n"]
    close $f

从所有主机名的文件中收集并在循环中迭代它们但是如何根据线代表的不同命名每一行?

2 个答案:

答案 0 :(得分:1)

最简单的方法就是:

set f [open "host.txt"]
gets $f user
gets $f password
gets $f logs1
gets $f logs2
gets $f containerName
close $f

有关更多背景信息,请参阅https://www.tcl.tk/man/tcl8.5/tutorial/Tcl24.html

答案 1 :(得分:0)

在您的示例中,hosts是项目列表。您可以使用lindex命令访问各个项目。例如:

set user [lindex $hosts 0]
set passwd [lindex $hosts 1]