funciones

Imagen de Belo
0 puntos

Hola buenas, estoy con un asunto de funciones y no consigo implementarlo como quiero.

El tema es el siguiente: Tengo unas funciones las cuales quiero ejecutar cuando necesite como cuando usas un comando. Las tengo en .profile, pero de esta forma al activarlas ( . ~/.profile ) lo que tambien me hace es ejecutar el archivo completo, por lo que me ejecuta todas las funciones, que es lo que no quiero por que es un engorro entre otras cosas.

Pense que poniendolas como scripts en /bin ( p.ej.) y ejecutarlas a placer, pero no me las ejecuta con solo escribir el nombre del script. No se si se me esta pasando algo o hay algun otro camino para hacer lo que busco, agradeceria mucho la ayuda, un saludo

_____________________________________________________________________________________________

.Es preferible estar mutilado que vivir con una mente corrupta.
_____________________________________________________________________________________________

Imagen de slap
+1
0
-1

al activarlas ( . ~/.profile ) lo que tambien me hace es ejecutar el archivo completo, por lo que me ejecuta todas las funciones

El script .profile sí que se ejecuta completo, pero las funciones que hayas definido NO se ejecutan a no ser que las llames explicitamente.

Lo correcto es añadir las funciones al archivo ~/.bashrc de esta forma:

# Mis funciones
mihost()
{
echo $HOSTNAME
}
export -f mihost

De esta forma las tendrás disponibles en cualquier terminal que abras.

Otra manera de conseguir, más o menos, lo mismo, sería que en lugar de funciones te creases scripts para cada una de las tareas que quieras hacer. Esos scripts los puedes guardar en ~/bin y así los tendrás disponibles como comandos desde cualquier terminal.

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK
+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de Belo
+1
0
-1

Lo de activar lo decia por la necesidad de ejecutar para utilizar las funciones escritas en profile.
Me ha ayudado mucho, pero tengo otro problemilla, cuando intento meter una condicional en una funcion o fuera de ella, no trabaja la condicional, simplemente me ejecutar el comando de la primera condicion sin importarle la condicion, p.ej.

function name()
{
if TERM=xterm; then
echo Soy el terminal xterm
else
echo No soy el terminal xterm soy el terminal $TERM
fi

echo Este es el resultado de la condicional acerca del terminal
}

La sintaxis no concuerda con lo que he leido. ( Los quiones son comandos )

Lei lo siguiente : if - else - endif
Vi en Ubuntu lo siguiente : if - ;then - else - fi

De todas formas, aun fuera de la funcion, como una unica condicional me ocurre lo mismo, siempre ejecuta la primera.

Agraderia alguna aclaracion al respecto, gracias de antemano

_____________________________________________________________________________________________

.Es preferible estar mutilado que vivir con una mente corrupta.
_____________________________________________________________________________________________

+1
0
-1

_____________________________________________________________________________________________

.Es preferible estar mutilado que vivir con una mente corrupta.
_____________________________________________________________________________________________

Imagen de slap
+1
0
-1

La sintaxis del if:

if [ condicion ];
then
  comandos
fi

En tu caso:

if [ "$TERM" = "xterm" ];
then
  echo "Soy el terminal xterm"
else
  echo "No soy el terminal xterm soy el terminal $TERM"
fi

Observa que:

  • uso "" para la comparación "$TERM" = "xterm"
  • hay un espacio delante y detrás del =
  • hay un espacio después de [ y antes de ]
  • para consultar el valor de las variables debes usar: $VARIABLE o ${VARIABLE}

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK
+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de Belo
+1
0
-1

Es la primera vez que me encuentro algo asi, siempre he tenido el concepto de que las comillas se usan para que los espacios influyan en un valor, nombre de variable, etc, pero que poniendo comillas sea obligatorio el uso de ciertos espacios fuera del entorno de los propios valores ( aunque dentro de su englobador []) nunca lo habia visto.

Te agradezco una vez mas la ayuda, ya que hubiese pensado en ello mas nunca que tarde.

Un saludo

_____________________________________________________________________________________________

.Es preferible estar mutilado que vivir con una mente corrupta.
_____________________________________________________________________________________________

+1
0
-1

_____________________________________________________________________________________________

.Es preferible estar mutilado que vivir con una mente corrupta.
_____________________________________________________________________________________________