comando bash per pressione di un tasto ripetutamente simulare un processo
-
22-09-2019 - |
Domanda
Il nmap strumento ha una tale funzione - quando si sta eseguendo una scansione [#nmap -A -T4 localhost] e premere "Invio" - visualizza tipo di informazioni sullo stato "Timing: Circa 6,17% fatto"
Domanda -? Come posso forzare questo pressione di un tasto per accadere più volte senza toccare una tastiera in Bourne shell
ps:. Solo cercando di trovare una soluzione alternativa per un bug nella funzione di proc_open di php, quando stdout di un processo viene restituito solo dopo la chiusura del tubo stdout, e l'emulazione pty di PHP non funziona sul FBSD
Domanda chiusa. Problema risolto con l'utilità "aspettarsi"
#!/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;
}
}
Soluzione
Probabilmente più facile da usare expect
.
Altri suggerimenti
Forse l'ultimo programma di 'Yes Man' farà ciò che è necessario - il programma si chiama 'sì' e ripetutamente genera la stessa linea di ingresso più e più volte
.yes ok | recalcitrant.php
Questo invierà 'ok' più a capo al PHP recalcitrante di frequente. È rate limitato dalla velocità alla quale il programma ricevente legge i suoi ingressi. E 'disponibile nelle utility GNU, e sulla maggior parte delle altre piattaforme Unix.
Se avete bisogno di intelligence nel settore della trasformazione, anche se, poi il Tcl-based ' aspettarsi '
Nota, si può sbarazzarsi del ciclo 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"
Sei certo bisogno dei sleep
s? In genere possono essere evitati utilizzando abbinamento -regexp
con il comando expect
.
Utile Aspettatevi consiglio: durante lo sviluppo, utilizzare exp_internal 1
per verbosamente vedere come i vostri modelli sono corrispondenti del comando