[ninux-not-wireless] [SHELL] Ping con timestamp colorato

LuX lux at ninux.org
Sat Nov 10 20:25:48 CET 2012


Ragazzi, (non ridete), in un momento di pura GIGGIONERIA NERD ho sfornato 'sto COSO qui sotto.
É uno script bash che mostra data e ora su ogni riga di output del comando ping, ma (se la console lo permette), li colora  XD

------------------------------------------------------------------------------------------
#!/bin/bash
EXPECTED_ARGS=1 # Number of arguments expected.
E_BADARGS=85    # Exit value if incorrect number of args passed.
test $# -ne ${EXPECTED_ARGS} && echo "Usage: `basename $0` <hostname>|<ipv4>" && exit ${E_BADARGS}
ping $1 | while read pong; do echo -e "[$(date +"\033[01;32m%F\033[00m \033[01;31m%T\033[00m")] ${pong}"; done
exit 0
------------------------------------------------------------------------------------------

Vabbè, come direbbe il mio vecchio prof. é un inutile orpello!

In realtà la cosa che mi sembrava utile condividere é la possibilità di catturare (e processare) l'output di un comando senza attendere che termini.
il pezzo di codice utile é:

 ... | while read variabile; do ... ; done

Ad esempio:

ping 127.0.0.1 | while read variabile; do echo "quellochemmepare $variabile" ; done

Spero possa essere utile a qualcuno :)

--
LuX


More information about the Not-wireless mailing list