gpt4 book ai didi

linux - 如何使用一系列参数调用期望脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:06:42 26 4
gpt4 key购买 nike

我有一个 expect 脚本,如下所示:

#!/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] 但这不起作用,因为脚本将 host[1-8] 解释为参数并向我展示:

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)

我怎样才能让它工作?

最佳答案

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

for host in cc{1..8}
do
./script.sh cmds_ "$host"
done

关于linux - 如何使用一系列参数调用期望脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38925392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com