Оболочка «ожидает» скрипт, как получить возвращаемое значение после «отправки» команды - PullRequest
0 голосов
/ 01 июня 2018

ожидайте версии 5.45

Привет, я написал простой сценарий ожидаемого выполнения команд на удаленном сервере Linux с автоматическим вводом пароля.Я хочу знать, как получить возвращенное значение с удаленного сервера после того, как команда "отправила" с локального.

Код: 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'.

имя хоста удаленного_сервера будет напечатано, но со многими другими бесполезными взаимодействующими данными, как я могу получить возвращаемое значение из send "${command} \n"?Я имею в виду, как ./no_interact_cmd.sh 192.?.?.? root *** 'hostname' может вернуть значение ${command} на удаленном сервере напрямую?

Спасибо

...