Ожидайте, что скрипт не покажет вывод ошибок на экране - PullRequest
0 голосов
/ 22 апреля 2019

Ниже приведен сценарий ожидания, который я создал, однако, когда узел становится недоступным, он отображает ошибки на экране, как показано ниже.Я пытаюсь заставить скрипт не показывать ошибки вывода и переходить к следующему хосту в цикле

Это ожидаемый скрипт

#!/usr/bin/expect -f

#Argument passed from 1st script to here, and loops with expect script
set HOST [lindex $argv 0]

foreach host $HOST {
            set timeout 10
            global spawn_id
            spawn ssh $HOST
            expect {
                    "Password:" {send "password\r"}
                    "*No route to host"                                       
                     {puts "Host error -> $expect_out(buffer)";exit}
                    "ssh_exchange_identification: Connection closed by 
                     remote host" 
                    {puts "Host error -> $expect_out(buffer)";exp_continue}
            }
            expect "*~ $"

    #Log into Switch
    send "ssh user@x.x.x.x\r"
    expect "RSA key fingerprint" {send "yes\r"; exp_continue}
    expect "Password:"
    send "password\r"
expect eof
}

И это вывод, показанный, когда хостнедоступен

send: spawn id exp4 not open
while executing
"send "ssh user@x.x.x.x\r""
("foreach" body line 12)
invoked from within
"foreach host $HOST {
    set timeout 10
    global spawn_id
    log_user 0
    spawn ssh $HOST
    expect "Password:"
    send "password\r"..."
(file "/path/to/file/expect_script.sh" line 6)

Любая помощь будет принята с благодарностью.

...