Cómo hacer que el comando curl no muestre el progreso en un script
Si queremos saber la IP pública de nuestro sistema, podemos usar curl con un servicio externo, como este:
curl ifconfig.me
Y nos devuelve sin problemas la IP pública, pero si lo ponemos en un script:
#!/bin/bash ip=$(curl ifconfig.me) echo "Mi IP pública es $ip"
Al ejecutarlo, nos muestra el progreso:
$ ./myip.sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 13 100 13 0 0 83 0 --:--:-- --:--:-- --:--:-- 83 Mi IP pública es www.xxx.yyy.zzz
Si miramos en la documentación, nos indica que la opción -s o –silent debería ocultarlo:
-s, --silent Silent mode
Y hay veces que sí, y otras que no. Depende del sistema, de la versión, de la distribución…
Lo que no falla es redirigir la salida a /dev/null y quedarnos sólo con el resultado:
#!/bin/bash ip=$(curl ifconfig.me 2> /dev/null) echo "Mi IP pública es $ip"
Pingback: Saber nuestra IP pública a través de la consola y en shell script – Linux en Español