Pregunta

losnmap La herramienta tiene una característica de este tipo, cuando realiza un escaneo [#nmap -a -t4 localhost] y presiona "Enter", muestra la información de estado de estado "Tiempo: aproximadamente 6.17% hecho"

Pregunta: ¿Cómo puedo obligar a este tecla a suceder repetidamente sin tocar un teclado en Bourne Shell?

PD: Solo trato de encontrar una solución al trabajo para un error en la función PROC_OPEN de PHP, cuando se devuelve un proceso de un proceso solo después de cerrar la tubería Stdout, y la emulación PTY de PHP no funciona en FBSD.

Pregunta cerrada. Problema resuelto con la utilidad "esperar"

#!/usr/local/bin/expect

spawn /usr/local/bin/nmap -A -T4 -p 21-100 localhost
expect arting {sleep 3; send \r}
while {1} {
        expect eof {
            send_user "finished\n";
            exit;
        } "done;" {
            sleep 3;
            send \r;
            continue;
        }

}
¿Fue útil?

Solución

Probablemente más fácil de usar expect.

Otros consejos

Tal vez el programa final 'Sí Man' haga lo que necesita: el programa se llama 'Sí' y genera repetidamente la misma línea de entrada una y otra vez.

yes ok | recalcitrant.php 

Esto enviará 'OK' más Newline al recalcitrante PHP con frecuencia. Está limitado por la velocidad a la que el programa de recepción lee sus entradas. Está disponible en las utilidades de GNU y en la mayoría de las otras plataformas basadas en UNIX.

Sin embargo, si necesita inteligencia en el procesamiento, entonces el TCL 'basado en TCL'suponer'

Nota, puede deshacerse del bucle infinito:

spawn /usr/local/bin/nmap -A -T4 -p 21-100 localhost
expect arting {sleep 3; send \r}
expect {
    "done;" {
        sleep 3
        send \r
        exp_continue
    }
    eof
}
puts "finished"

¿Estás seguro de que necesitas el sleep¿s? Por lo general, se pueden evitar usando -regexp emparejando con el expect dominio.

Consejo de esperanza útil: mientras se desarrolla, use exp_internal 1 Para ver muy bien cómo sus patrones coinciden con la salida del comando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top