¿Puedo "exportar" funciones en bash?

Pregunta:

source some_file

algún_archivo:

doit ()
{
  echo doit $1
}
export TEST=true

Si obtengo algún_archivo, la función "doit" y la variable TEST están disponibles en la línea de comando. Pero ejecutando este script:

script.sh:

#/bin/sh
echo $TEST
doit test2

Devolverá el valor de TEST, pero generará un error sobre la función desconocida "doit".

¿Puedo "exportar" la función también, o tengo que obtener some_file en script.sh para usar la función allí?

Respuesta:

En Bash puede exportar definiciones de funciones a sub-shell con

export -f function_name

Por ejemplo, puede probar este sencillo ejemplo:

./script1 :

#!/bin/bash

myfun() {
    echo "Hello!"
}

export -f myfun
./script2

./script2 :

#!/bin/bash

myfun

Luego, si llama a ./script1 , verá el resultado ¡Hola! .

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım