Pasar el resultado de una orden a una variable

Imagen de shekel_c4
0 puntos

Estoy intentando hacer un script para que cada veinte minutos compruebe con el nmap cuantos usuarios estan conectados a Internet. La parte de abajo que pongo es la parte donde tengo el problema.

a="nmap -sP 192.168.1.1-255" 
exec $a|grep -c "Host"

El resultado de esto es el numero de conexiones (el router tambien cuenta.. 192.168.1.1). Bueno, pues lo que yo quiero es poder meter el resultado que me imprime en pantalla en una variable para asi poder compararla y si se muestra algun ordenador conectado que no sea y que muestre un mensaje ("gdialog --msgbox")

Imagen de joseluis
+1
0
-1

Para almacenar el resultado de la ejecución de un comando en una variable lo puedes hacer con $(comando) o con `comando` (el carácter ` es el acento grave).
En tu caso podría quedar algo así:

numusuarios=$(nmap -sP 192.168.1.1-255 |grep -c "Host")

o utilizando lo que ya tenías:

a="nmap -sP 192.168.1.1-255" 
numusuarios=$(exec $a|grep -c "Host")

Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado

+1
0
-1