期望脚本提供多个输入
Expect script to give multiple inputs
我想通过 ssh 连接到服务器列表并使用 expect 脚本在每台服务器上设置唯一值。
示例:
我有 10 个服务器。服务器 1 到 10
我有服务器 assettag1 到 10 的资产标签。
我想通过 ssh 连接到每台服务器并更新每台服务器上的资产标签值。
谢谢,
苏库马尔
这是一个可能对您有帮助的脚本。
如您所见,值作为参数传递给 myscript.sh,其中 expect 代码所在。
#!/bin/bash
adresses=("192.168.1.1" "192.168.1.2" "192.168.1.3" "192.168.1.4" "192.168.1.5" "192.168.1.6" "192.168.1.7")
hostnames=("ap02" "ap03" "ap04" "ap05" "ap06" "ap07" "ap08")
### Main ###
for cpt in {0..6}
do
./myscript.sh ${adresses[${cpt}]} ${hostnames[${cpt}]}
cpt=$(( $cpt +1 ))
done
下面是我如何使用 myscript.sh
中的参数
#!/usr/bin/expect
set ipaddr [lindex $argv 0];
set hostname [lindex $argv 1];
...
其中 $argv
0 是第一个参数,$argv 1
第二个参数
我想通过 ssh 连接到服务器列表并使用 expect 脚本在每台服务器上设置唯一值。
示例: 我有 10 个服务器。服务器 1 到 10 我有服务器 assettag1 到 10 的资产标签。 我想通过 ssh 连接到每台服务器并更新每台服务器上的资产标签值。
谢谢, 苏库马尔
这是一个可能对您有帮助的脚本。 如您所见,值作为参数传递给 myscript.sh,其中 expect 代码所在。
#!/bin/bash
adresses=("192.168.1.1" "192.168.1.2" "192.168.1.3" "192.168.1.4" "192.168.1.5" "192.168.1.6" "192.168.1.7")
hostnames=("ap02" "ap03" "ap04" "ap05" "ap06" "ap07" "ap08")
### Main ###
for cpt in {0..6}
do
./myscript.sh ${adresses[${cpt}]} ${hostnames[${cpt}]}
cpt=$(( $cpt +1 ))
done
下面是我如何使用 myscript.sh
中的参数#!/usr/bin/expect
set ipaddr [lindex $argv 0];
set hostname [lindex $argv 1];
...
其中 $argv
0 是第一个参数,$argv 1
第二个参数