Número de argumentos

Imagen de yo_mismo1210
0 puntos

Hola, puede que parezca una pregunta tonta (y/o innecesaria), pero no le encuentro solución.
Tengo un scrpit que usa varias funciones (func1,func2...) y cada una de esas funciones requiere cierto número de argumentos, por ejemplo, func1 usará 2 argumentos, func2 ninguno, func3 usará 1 argumento...etc lo que necesito es algo así como lo inverso del valor de "$#", es decir que en lugar de llamar a la función y q me devuelva cuantos argumentos le he pasado, lo que necesito es saber cuántos argumentos tengo que pasarle.

¿Hay alguna forma de saber (antes de llamarla) cuántos argumentos requiere una función?

Muchas gracias por cualquier indicación de por dónde empezar a resolver esto.

**Si fuese más fácil hacerme scripts en lugar de funciones y llamar a script1, script2... en lugar de a func1, func2... también me valdría

Imagen de pwned
+1
0
-1

Lo que comentas es algo que no tiene mucho sentido, te explico. Si tu creas una función, tu decides cuantos parámetros debes meter. Independientemente tu puedes meter el número de parámetros que quieras, por eso como va a saber el sistema cuantos parámetros quieres que lleve una función, el sistema no es adivino :p.

Por eso al ejecutarla ya deberías saber los parámetros que le tienes que meter. Lo que puedes hacer es al ejecutar la función, si no tiene el número de parámetros deseados que te mande un mensaje con info de como ejecutarlo. Así es como lo hace el 99% de los programas que veras en tu sistema.

+1
0
-1
Imagen de yo_mismo1210
+1
0
-1

Claro, eso lo entiendo y tiene toda la lógica del mundo, pero estoy haciendo un scripts que incorporará un montón de funciones, bastante de las cuales las harán amigos y colaboradores... entonces me sería muy útil buscar una forma de automatizar el contaje de argumentos necesario para cada una...

Es probable que simplemente me convenga replantear la estructura general...

Muchas gracias por la ayuda!!

+1
0
-1
Imagen de razaAztk
+1
0
-1

Igual creo que tendrías que re-estructurar tu lógica................ pero como sea....

Una solución "chapusera" puede ser que crees una variable de entorno, y en cada función asignar a la variable de entorno el número de argumentos que usa. Ejemplo:


#!/bin/bash

set NUM_PARAM

function prototipo1 {
NUM_PARAMS=0
}

function prototipo2 {
NUM_PARAMS=2
}

function prototipo3 {
NUM_PARAMS=3
}

prototipo1
echo $NUM_PARAMS

prototipo2
echo $NUM_PARAMS

prototipo3
echo $NUM_PARAMS

Saludos!

+1
0
-1

void hey(int x,int y)
{
if (x && y)
 printf("http://libertadhack.blogspot.com/");
else
 printf("http://libertadpunk.blogspot.com/");
}
Imagen de yo_mismo1210
+1
0
-1

Probablemente no haya una función predeterminada... pero me parece una buena idea lo de la variable de entorno.

Muchas gracias por la ayuda!!

+1
0
-1