首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用参数序列调用expect脚本?

如何使用参数序列调用expect脚本?
EN

Stack Overflow用户
提问于 2016-08-12 19:41:00
回答 1查看 460关注 0票数 0

我有一个expect脚本,看起来像:

代码语言:javascript
运行
复制
#!/usr/bin/expect
set path_start [lindex $argv 0]
set host [lindex $argv 1]
spawn ssh root@$host telnet jpaxdp
expect {\-> }

set fh [open ${path_start}${host} r]
while {[gets $fh line] != -1} {
    send "$line\r"
    expect {\-> }
}
close $fh

send "exit\r"
expect eof

我把它称为./script.sh cmds_ cc1,现在我的主机编号为1-8,我试图像./script cmds_ cc[1-8]那样调用脚本,但这不起作用,因为脚本将host1-8解释为参数,并向我展示:

代码语言:javascript
运行
复制
spawn ssh root@cc[1-8] telnet jpaxdp
ssh: Could not resolve hostname cc[1-8]: Name or service not known
couldn't open "cmds_cc[1-8]": no such file or directory
    while executing
"open ${path_start}${host} r"
    invoked from within
"set fh [open ${path_start}${host} r]"
    (file "./script.sh" line 7)

我怎么才能把这事做好?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-12 19:45:54

cc[1-8]是一个文件名通配符,它查找与该模式匹配的文件。如果没有,则通配符本身保存在参数列表中。要获得一系列数字,请使用cc{1..8}。要重复运行该命令,您需要一个for循环。

代码语言:javascript
运行
复制
for host in cc{1..8}
do
    ./script.sh cmds_ "$host"
done
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38925392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档