壳牌"期待"脚本,如何获得返回值"发送"一个命令

时间:2018-06-01 08:21:46

标签: shell expect

期待版本5.45

大家好,我写了一个简单的expect脚本,用自动密码输入在远程linux服务器上执行命令。我想知道如何在命令为" send"之后从远程服务器获取返回值。来自当地。

代码:no_interact_cmd.sh

#!/usr/bin/expect
#usage: no_interact_cmd.sh ip_address username password command
set ip_address [lindex $argv 0]
set username [lindex $argv 1]
set password [lindex $argv 2]
set command [lindex $argv 3]

spawn ssh ${username}@${ip_address}

expect "*password:"
send "${password}\n"

expect "*]#"
send "${command} \n"

expect "*]#"
send "exit\n"

interact

例如,我想知道远程服务器的主机名:./no_interact_cmd.sh 192.?.?.? root *** 'hostname'

将打印

remote_server的主机名,但是有许多其他无用的交互信息,我怎样才能从send "${command} \n"获得返回值?我的意思是./no_interact_cmd.sh 192.?.?.? root *** 'hostname'如何直接在远程服务器上返回${command}的值?

由于

0 个答案:

没有答案