Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: d00ze13 en 12 Mayo 2011, 18:57 pm



Título: Pasar y recibir parametros de una funcion [Bash]
Publicado por: d00ze13 en 12 Mayo 2011, 18:57 pm
Pues querria saber como se pueden pasar variables a una funcion en bash y que retorne tambien datos por ejemplo un entero en plan:

function suma(){
    let a+=5
}
a=3
var=suma(a)
echo $var


Título: Re: Pasar y recibir parametros de una funcion [Bash]
Publicado por: leogtz en 13 Mayo 2011, 01:00 am
Al igual que otros lenguajes de programación, bash tiene una sentencia return con la cual retornar un valor entero.

El valor retornado quedará en la variable $?.

Código
  1. #!/bin/bash
  2. function suma()
  3. {
  4. #((resultado = $1 + $2))
  5. let "resultado=$1 + $2"
  6. return $resultado;
  7. }
  8.  
  9. suma 2 3
  10. echo -e "Resultado = $?";
  11.  

Otro ejemplo, usando $? implicitamente con ejecución condicional:

Código
  1. function isPositive()
  2. {
  3. (($1 > 0)) && return 0 || return 1;
  4. }
  5.  
  6. isPositive 2 && {
  7. echo -e "Es positivo";
  8. }
  9.  

Saludos.