Esperar que la salida del buffer de script no se muestre

¿Cómo puedo get la salida del command del buffer? Current'y es solo decir "(buffer).

Aquí está mi secuencia de commands y salida de debugging:

#!/bin/bash -x while read p; do echo $p { /usr/bin/expect -d << EOF match_max 10000 spawn ssh anthony@$p expect "password:" send "MyPasswordHere\r" expect " " send "ifconfig |grep -i eth0\r" expect " " puts "The output is $expect_out(buffer) " send "exit\r" EOF } done <List.txt + read p + echo localhost localhost + /usr/bin/expect -d expect version 5.45 argv[0] = /usr/bin/expect argv[1] = -d set argc 0 set argv0 "/usr/bin/expect" set argv "" executing commands from command file spawn ssh anthony@localhost parent: waiting for sync byte parent: telling child to go ahead parent: now unsynchronized from child spawn: returns {2032} expect: does "" (spawn_id exp15) match glob pattern "password:"? no anthony@localhost's password: expect: does "anthony@localhost's password: " (spawn_id exp15) match glob pattern "password:"? yes expect: set expect_out(0,string) "password:" expect: set expect_out(spawn_id) "exp15" expect: set expect_out(buffer) "anthony@localhost's password:" send: sending "M00nsh0t@\r" to { exp15 } expect: does " " (spawn_id exp15) match glob pattern " "? yes expect: set expect_out(0,string) " " expect: set expect_out(spawn_id) "exp15" expect: set expect_out(buffer) " " send: sending "ifconfig |grep -i eth0\r" to { exp15 } expect: does "" (spawn_id exp15) match glob pattern " "? no expect: does "\r\n" (spawn_id exp15) match glob pattern " "? no Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-40-generic x86_64) * Documentation: https://help.ubuntu.com/ Last login: Sun Dec 21 09:23:38 2014 from localhost expect: does "\r\nWelcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-40-generic x86_64)\r\n\r\n * Documentation: https://help.ubuntu.com/\r\n\r\nLast login: Sun Dec 21 09:23:38 2014 from localhost\r\r\n" (spawn_id exp15) match glob pattern " "? yes expect: set expect_out(0,string) " " expect: set expect_out(spawn_id) "exp15" expect: set expect_out(buffer) "\r\nWelcome " The output is (buffer) send: sending "exit\r" to { exp15 } + read p 

Solutions Collecting From Web of "Esperar que la salida del buffer de script no se muestre"

Dado que su script expect está en un henetworkingoc sin comillas, su variable de espera se maneja como una variable de shell. Cambio

 puts "The output is $expect_out(buffer) " 

a

 puts "The output is \$expect_out(buffer) " 

La salida que ve, ( The output is (buffer) ) es exactamente lo que esperaba: el shell está expandiendo $expect_out a nada antes de entregar la secuencia de commands a esperar.