https://foro.gambas-es.org/viewtopic.php?f=6&t=7209&p=43428#p43428
-----------------------------------
Shell
Lunes, 05 Noviembre 2018, 19:51

Re: Función Return En Shell Bash
-----------------------------------
Hola Tincho.

[quote]
Que tal así?
[/quote]

Lo de sumar tan solo era un ejemplo.  ;-) 
Me interesaba más el tema de un valor devuelto por una función.

Si el lenguaje funciona de una forma, no lo vamos a cambiar. Si el trabaja así.  :roll: 

La idea en si es que estoy ejecutando un script que necesita llamar a una función que le devuelve una respuesta
y según esta, el script toma un camino u otro.

Mi idea era saber si de una lista de paquetes que le voy pasando a la función, este, está instalado o no.
Comencé con esta función:

[code linenumbers=false syntax=bash]
#!/bin/bash

function existe(){
cuenta=$(dpkg --get-selections | grep -wc $1)
# Si el valor de la variable es mayor o igual a uno..
if [ $cuenta -ge 1 ]; then
    # Si el paquete está instalado
    echo "El paquete $1 está instalado"
else
    # Si el paquete no está instalado
    echo "El paquete $1 no está instalado"
fi
}

existe $1
[/code]

Si queremos saber si Gambas3 está instalado:

[code linenumbers=false syntax=bash]
./ExistePaquete.sh gambas3
[/code]

Devolviendo la frase según condición.

Ahora bien si estoy comprobando una lista de paquetes podíamos querer que según el valor devuelto,
este instalado: 1, o no: 0

[code linenumbers=false syntax=bash]
#!/bin/bash

function existe(){
cuenta=$(dpkg --get-selections | grep -wc $1)
# Si el valor de la variable es mayor o igual a uno..
if [ $cuenta -ge 1 ]; then
    # En caso positivo devolvemos 1
    return 1
else
    # En caso contrario devolvemos 0
    return 0
fi
}

# Llamamos a la función pasando el nombre del paquete
existe $1
# Mostramos 1 o 0 en según elcaso
echo $?
[/code]

Con eso tomaríamos la decisión de que el paquete se ha instalado y no vamos a intentar instalarlo de nuevo,
en caso contrario lo instalaríamos. Es otra función.

¿ Y por qué todo esto ?.  Bueeeno, eso es algo que os tengo que comentar en otro mensaje. Continuara.... ;-) 

Saludos


