Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - mario290386

#1
Hola a todos, tengo un problema con unos bucles y me estoy volviendo loco ya que he intentado varios metodos y no consigo solucionarlo.

De forma muy resumida lo que hace mi código es pedirle a un usuario que introduzca unos valores que son los GPIO de una raspberry, que posteriormente manejaré mediante un bucle for para ir encendiéndolos, hasta aquí bien, el problema viene cuando intento parar el bucle for mediante un while.

Lo que pretendo es que el bucle for siga contando de 1 hasta 27, en 27 debería  salir del bucle for, es decir, aunque el usuario introduzca un valor superior a 27, siempre debería de finalizar el bucle for en 27.
Este es el código:

read -p "introduce valor inicial: " gini

read -p "introduce valor final: " gfin

max=0

while [ $max -le 27 ];do
   
ssh $hotkey pi@192.168.5.1 "sudo bash -c;   for ((  i=$gini; i<=$gfin; i++ )); do echo \$i; echo \$i >/sys/class/gpio/export;sleep 0.1; echo out >/sys/class/gpio/gpio\$i/direction; echo \$max; let "max++"; done"

break

done


Lo que me sucede con este código es que el for sigue contando después de llegar al valor 27, he añadido una variable "max" para intentar frenar al for, pero ni con esas, cualquier pista me seria de gran ayuda, gracias y un saludo!
#2
Muchas gracias ahora si me funciona!!  ;-) solo me faltaba añadir en el script "bash" imagino que la función de esto es llamar a una nueva shell y de esta manera se exportan.
Saludos!!
#3
Hola a todos!!  :D
Tengo un problema que quizas sea algo sencillo de hacer pero no consigo resolver.
Tengo un archivo llamado config.sh que contiene lo siguiente:
export Ip1=60
export Ip2=100


Y en otro script llamado envia.sh tengo esto:
source config.sh
echo $ip1  $ip2


Lo que pretendo es que al ejecutar el script "envia.sh" se guarden estas variables de modo que pueda usarlas en la shell principal.
Cuando ejecuto el script "envia.sh" el comando echo me lo realiza correctamente y me muestra el valor de las 2 variables, pero cuando en la shell principal hago un "echo $ip1" el valor me aparece vacio, he intentado varios metodos pero no consigo que el proceso principal reconozca las variables pese a que han sido exportadas. No se si hay otro metodo especifico para hacer esto. Por supuesto el script tiene permisos de ejecución y lo ejecuto de esta manera ". envia.sh"
Espero que alguien pueda arrojarme algo de luz, saludos!!
#4
Hola a todos!! :D Necesito hacer algo que creo que es muy sencillo pero no encuentro el comando adecuado para llevarlo a cabo.

Tengo un archivo de texto del cual necesito copiar una serie de lineas para pegarlas en otro archivo, sustituyendo una serie de lineas de este archivo por las lineas que yo he copiado anteriormente.
He intentado usar SED, el problema es que no consigo sustituir varios párrafos con los saltos de linea correspondientes.

Gracias y un saludo!
#5
Hola de nuevo! :D Necesito saber como puedo consultar si un puerto USB esta conectado o no, intentado el método este:

if [ -f /dev/ttyUSB0 ];


Pero supongo que no me funciona porque no es ni un directorio ni una carpeta, no se si esto se podrá realizar con el comando cat..
Saludos!
#6
Perfecto srWhiteSkull, ya lo tengo solucionado, me hice un fichero en donde coloqué todas las variables con su valor y de ahi voy leyendo.

Saludos!!
#7
Hola tincopasan muchas gracias por la solución! funciona perfectamente, la verdad no sabia como se podían exportar estas variables.

Ahora me ocurre una cosa con la que no contaba, el motivo por el que quería exportar la variable de un archivo a otro es porque en el script principal voy sumando valores a la variable y claro al ejecutar el script principal la propia declaracion de la variable provoca que me modifique el valor que he ido sumando.

Ahora me ocurre lo mismo, solo que la variable esta en otro archivo  y al importarla me importa tambien su valor y me modifica los parametros de mi script, como posible solución he pensado en añadir al final del codigo un comando que me permita modificar el valor de la variable almacenada en el otro script, así saldría de este bucle infinito que no me permitia que mi programa funcionase bien.

Siento si no me he explicado bien, pero para que me entiendas, ahora necesito hacer lo inverso, quiero saber si hay alguna manera de modificar el valor de la variable "tincopasan" desde el script principal.

Mucha gracias!!
#8
Hola a todos!! :D tengo una duda en python con respecto al manejo de las variables, agradeceria que alguien me echara una mano.

Tengo un script de python en el cual tengo que importar una variable que esta definida en otro script, y la verdad no se importar el valor de esta variable sin tener que definir la variable de nuevo en el script.

No se si existe alguna forma de tratar las variables en python sin tener que definirlas de nuevo, es decir necesito poder importar de otro fichero.


Gracias!!
#9
Muchas gracias MAFUS, me funciona correctamente ya el programa, lo he solucionado siguiendo tus pasos pero he cambiado los if por la estructura case.
Saludos.
#10
Hola MAFUS, gracias por la idea, en efecto al probar lo que me comentas si funciona, el problema que no me sirve ya que necesito que este imprimiendo continuamente "Modo 1" en bucle infinito y al pulsar 2 necesito que este imprimiendo "Modo 2" en bucle infinito y si pulso de nuevo 1 que me imprima "Modo 1" infinitamente, de la manera que me comentas solo me lo imprime una vez.
Asi es como  he colocado la asignacion de "va=0" en el programa:

     while(va=='1') {
   
   Serial.println("Modo 1");
   delay (400);
   va = 0;
      }
  }

  while (va=='2') {
     Serial.println("Modo 2");
     delay (400);
    va = 0;
    }   
  }