Script Bash que crea archivos no deseados

Script Bash que crea archivos no deseados

Terminé haciendo este script en un enrutador DD-WRT que está creando dos archivos no deseados y parece que no puedo entender por qué. No soy un genio de las secuencias de comandos, especialmente con bash, por lo que agradecería cualquier ayuda.

#!/bin/sh

sleep 30
mkdir /tmp/myvpn; cd /tmp/myvpn

# ... doing stuff...

while [ 1 ]
do
  r1=`wget -q http://ipinfo.io/ip` > /dev/null
  r2=`$(wget -q "http://ipinfo.io/$r1/country")` > /dev/null
  if [ $r2 -eq "XX" ] 
    then echo "XX OK" > /tmp/myvpn/result_check_vpn.txt
    else
        echo "XX NOK" > /tmp/myvpn/result_check_vpn.txt
        killall -q openvpn
        sleep 5
        openvpn --config /tmp/openvpncl/openvpn.conf --route-up /tmp/myvpn/route-up.sh --down-pre /tmp/myvpn/route-down.sh --daemon
        sleep 25
        sh /proc/net/ip_conntrack_flush
  fi
sleep 180
done

Este script crea dos archivos no deseados en /tmp/myvpn llamados "país" e "ip". Debo estar haciendo algo mal. Básicamente, el script intenta verificar si la VPN está establecida correctamente verificando si efectivamente cambié de país (es necesario que realice esta verificación).

Respuesta1

Los archivos se crean mediante estos dos comandos:

r1=`wget -q http://ipinfo.io/ip` > /dev/null
r2=`$(wget -q "http://ipinfo.io/$r1/country")` > /dev/null

Bien, el segundo es un error de sintaxis, pero supongo que es un error tipográfico. El wgetformato del comando es:

wget http://www.example.com/file

Luego lo descargará filey lo guardará en el directorio actual. Como no nos ha dicho qué esperaba que sucediera, supongo que quería guardar el contenido del archivo en las variables. Si es así, debe indicarle wgetque imprima en la salida estándar usando -O -:

r1="$(wget -qO - http://ipinfo.io/ip)"
r2="$(wget -qO - http://ipinfo.io/$r1/country)" 

Por supuesto, no puede redirigir la salida ( > /dev/null), ya que eso significa que no se imprime nada.

información relacionada