Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: NekoOs en 16 Junio 2012, 23:29 pm



Título: Problema con variables en BASH [Solucionado]
Publicado por: NekoOs en 16 Junio 2012, 23:29 pm
Código
  1. #!/bin/bash
  2. # FUNCIONES EMPLEADAS
  3. function RPROD()
  4. {
  5. #este solo es por probar
  6. let PRECIOS=$PRECIO+1
  7. read -p "DIGITE EL PRECIO DEL PRODUCTO: >> " PRECIO
  8. read -p "DIGITE LA CANTIDAD DE DISPONIBLE: >> " CANTID
  9. }
  10. # NOMBRE DEL PRODUCTO
  11. read -p "DIGITE EL NOMBRE DEL PRODUCTO: >> " NOMBRE
  12. PRECIO=6
  13. if [ ! -e INVENTARIO.CSV ]; then ( ACOD; RPROD); fi
  14. # estos 3 no se ven  :-(
  15. echo $PRECIOS
  16. echo PRECIO
  17. echo CANTID
  18. # solo este parece ser una variable global
  19. echo NOMBRE
  20. read
  21. #tengo entendido que para determiar una variable local se usa el local variable pero no es mi caso yo quiero que las acciones que resultan de mis funciones puedan usarse en cualquier parte del script
Esto se puede  :rolleyes: en realidad son muchas mas funciones y quizas me respondan que para que hago las operaciones dentro de una funcion y la respuesta es que algunas funciones se usan paa varios aspectos desde registrar, hasta modificar y comprar los datos que se le piden al usuario son los mismos solo cambia el uso que se le da al resultado  :-\ les agradeceria mucho que me ayudasen con esto  :silbar: >:(


Título: Re: Problema con variables en BASH
Publicado por: leogtz en 17 Junio 2012, 01:49 am
Solo hay que definir las variables antes de definir la función:

Código
  1. #!/usr/bin/env bash
  2. edad=21
  3.  
  4. function algo() {
  5. read -p "Edad: " edad
  6. }
  7.  
  8. echo -e "Antes de llamar a función: ${edad}";
  9. algo;
  10. echo -e "Después de llamar a función: ${edad}";
  11.  


Título: Re: Problema con variables en BASH [Solucionado]
Publicado por: NekoOs en 25 Junio 2012, 04:52 am
Te agradezco mucho por tu ayuda aunque encontre la manera de solucionarlo claro el metodo era algo mas engorroso  ;D pronto estare actualizando todo el codigo que escribi y me sera muy util tu aporte  ;-)