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"

 

 

Un comentario en «Cómo hacer que el comando curl no muestre el progreso en un script»

Deja una respuesta

Tu dirección de correo electrónico no será publicada.