我想将文件(servers_list)中列出的服务器名称作为变量传递给另一个脚本(user_create_script)中的生成命令。该脚本的目的是在多个服务器中创建用户(david)。
#cat servers_list
server1
server2
server3
#cat user_create_script
spawn ssh -t user@$i sudo /usr/sbin/useradd david
expect "password:"
send "pass123\r"
interact
答案1
你会有像这样的 user_create_script
#!/usr/bin/expect -f
set fh [open servers_list r]
while {[gets $fh server_name] != -1} {
spawn ssh -t user@$server_name sudo /usr/sbin/useradd david
expect "password:"
send "pass123\r"
expect eof
}
close $fh
我假设您的远程用户不需要 sudo 密码。
有关 Tcl 的更多文档(expect 是在此基础上构建的),包括教程,请参见:https://tcl.tk/doc/