Código de Linux/Unix Shell Scripting - Ejecutar funciones desde la líne de comandos en BASH

Imágen de perfil

Ejecutar funciones desde la líne de comandos en BASHgráfica de visualizaciones


Linux/Unix Shell Scripting

Publicado el 16 de Junio del 2017 por Simón
1.410 visualizaciones desde el 16 de Junio del 2017. Una media de 21 por semana
Ejecuta, indistintamente un comando o una función contenida en un directorio de librerías. Útil para depuración de funciones.

1.1

Actualizado el 28 de Agosto del 2017 (Publicado el 16 de Junio del 2017)gráfica de visualizaciones de la versión: 1.1
1.411 visualizaciones desde el 16 de Junio del 2017. Una media de 21 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/bin/bash
 
# fichero:	cmd
# procesador de librerías personales
# Autor:	Simón Martínez [simon@cicoss.net]
# Fecha:	08/06/2017
# Sintaxis:	cmd [comando | funcion] [parametros]
# Ejecuta indistintamente un comando o una función de librería
# Útil en depuración
 
declare -i NPARM=1	# Número mínimo de parametros
declare -f error	# Función de error de parametros
declare -f help		# Función de ayuda
 
function error(){
	echo "Error en 'cmd'"
	exit 0
}
 
function help(){
	if [ $# -eq 1 ];then
		# Si no se le pasa ningun comando
		echo "Ayuda de 'cmd'"
		exit 0
	fi
}
 
source Básico
 
declare WD=$(pwd)
declare orden="$1"
 
declare -f prueba
 
# Comprobamos si la orden pasada como parametro existe
if [[ "$(type "$orden" 2>&1;)" =~ "no se encontró" || "$(type "$1" 2>&1;)" =~ "not found" ]]; then
	# Si no existe buscamos si existe alguna función en algún fichero '.lib' dentro de
	# /usr/local/bin/BashLib
	result=("$(grep "function $orden" /usr/local/bin/BashLib/*.lib  2>&1;)")
	if [ $? -eq 0 ]; then
		# Si existe el nombre del fichero aparece antes de los dos puntos':'
		# en la respuesta de grep e importamos el fichero
		source ${result%%:*}
	else
		echo -e "$result"
		echo "Orden no encontrada"
		exit 1
	fi
fi
 
shift
respuesta=("$($orden "$@" 2>&1;)")
resultado=$?
echo -e "$respuesta"
 
exit $resultado



Comentarios sobre la versión: 1.1 (0)


No hay comentarios
 

Comentar la versión: 1.1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s4028  
Revisar política de publicidad