Linux/Unix Shell Scripting - bash script - funciones - return

   
Vista:

bash script - funciones - return

Publicado por Marc (3 intervenciones) el 11/01/2008 20:32:42
hola

Estoy haciendo unas pruebas en bash script. Tengo un archivo con funciones que devuelven valores y otro archivo que es el programa que las utiliza:

fichero funciones:

#!/bin/bash
# Funciones de prueba

uno() {
return 1;
}

cadena() {
return "Juan";
}

verdadero() {
return true;
}

fichero programa:

#!/bin/bash

. ./funciones

echo uno+1
echo cadena

if (verdadero) then
echo ok
fi

Cuando lo ejecuto espero ver por pantalla lo siguiente:

2
Juan
ok

En cambio lo que aparece es lo siguiente:

uno+1
cadena
./funciones: line 13: return: true: se requiere un argumento numérico

¿Alguien me puede dar alguna orientacion?

Saludos y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:bash script - funciones - return

Publicado por n0str0m0 (180 intervenciones) el 15/01/2008 14:38:44
Con . ./funciones, estás ejecutando el fichero que contiene las funciones en un shell separado. No puedes acceder a los resultados de las funciones, ¡ni siquiera las estás invocando!

Ve a tldp.org y lee la documentación de bash

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bash script - funciones - return

Publicado por Marc (3 intervenciones) el 16/01/2008 20:18:32
yo tenia entendido que las funciones se podían escribir en un fichero a parte y luego incluirlas en el fichero con tu script, como si de un "include de C" se tratara. De echo si tu tienes un fichero llamado funciones con el contenido:

#!/bin/bash

holaMundo() {

echo "¡Hola Mundo!"

}

y suponiendo que estas en el mismo directorio que el fichero funciones, en la linea de comnados escribes:

$ holaMundo
bash: holaMundo: orden no encontrada
$ . ./funciones
$ holaMundo
¡Hola Mundo!
$

lo que a mi me interesa es poder hacer funciones que devuelvan valores.

saludos y gracias por responder
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bash script - funciones - return

Publicado por Tom (253 intervenciones) el 18/01/2008 08:54:53
Pero por favor ¿por qué no leeis un poco de documentación? joé, si es que hay tutoriales a mansalva.

En este mismo foro hemos repetido que return sólo puede usar valores numéricos, que no es el caso de true.

Por otra parte, "echo uno+1" hace exactamente eso, imprimir "uno+1" ¿o qué creías ?

Mira, repasa el manual de bash y mira el de expr, cualquier cosa que te contemos la tendrás mejor explicada ahí.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bash script - funciones - return

Publicado por Marc (3 intervenciones) el 21/01/2008 19:34:08
Tienes razón, lo mejor sera que me lea los manuales, de hecho estoy seguro de que si hubiera hecho eso antes de preguntar aquí ya hubiera encontrado la respuesta.

"Por otra parte, "echo uno+1" hace exactamente eso, imprimir "uno+1" ¿o qué creías ? "

Pues si tengo una función que se llama uno y devuelve el valor 1, espero que al sumarle el valor uno a lo que retorna esa función obtener el valor 2. Eso es así en todos los lenguajes de programación que conozco

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bash script - funciones - return

Publicado por Tom (253 intervenciones) el 17/03/2008 17:47:41
¿ Conoces C ?
prueba:

int uno = 1;
printf("uno + 1");

a ver qué pasa.

Y, sí, con el manual aprenderás mucho, están pensados (la mayoría de los manuales) para encontrar fácilmente respuestas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bash script - funciones - return

Publicado por Paquito (1 intervención) el 23/07/2008 22:20:29
Si tienen ganas de discutir a ver quien sabe mas, no hagan en los foros porque mas de una persona pierde tiempo leyendo en busca de una solución.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bash script - funciones - return

Publicado por yo mismo (1 intervención) el 02/10/2008 22:37:09
Sin ánimo de ofender, todo lo contrario, pienso que aún podrías divertirte un poco más leyendo manuales básicos, aunque pienso que puedes llegar lejos si te lo propones

saludos y sigue así!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bash script - funciones - return

Publicado por animor_zeiss (5 intervenciones) el 17/03/2009 21:22:23
No se si me podrian enviar los script, soy novato

Hacer un guion que muestre cuantas veces está conectado un usuario.

14.Hacer un script que muestre sólo los directorios que hay en el directorio actual.

15.Hacer un guion que muestre los nombres de ficheros que contengan algún carácter que no sea ni una letra.

16.Hacer un guion que una el contenido de los dos ficheros pasados como argumento en un fichero nuevo.

18.Modificar el anterior guion para que muestre en pantalla cada frase y el número de caracteres que tiene.

20.Hacer un programa que verifique si los directorios /sbin y /usr/sbin están en la variable PATH

21.Hacer un guion que muestre las línea del fichero pasado como primer argumento las palabras pasadas como segundo y tercer argumentos. El guion debe verificar el número de argumentos.

23.Hacer un script que sustituya la frase «Compañía de las Indias Orientales» por «Sociedad de Pérdidad Ilimitadas» en todos los ficheros que haya en /var/www/html y cualquiera de su subdirectorios.

24.Hacer un script que mate todos los procesos cuyo nombre empiece por el texto pasado como argumento.

27.Hacer un script que muestre numerados en una línea distinta todos los argumentos pasados al ejecutarlo

Scrip para borrar y recuperar archivos que implementan una papelera de reciclaje
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bash script - funciones - return

Publicado por Jorge (1 intervención) el 18/03/2009 15:26:52
24.Hacer un script que mate todos los procesos cuyo nombre empiece por el texto pasado como argumento.

Este esta tirado:

#!/bin/bash

if [ -n $1 ]
then
killall $1
fi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bash script - funciones - return

Publicado por Arnoldo (1 intervención) el 23/05/2011 18:52:07
Me podrías dar la lista completa de la tarea????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bash script - funciones - return

Publicado por reaven (1 intervención) el 24/01/2012 18:45:59
A esto se le llama v-a-g-o
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar