Rory Rory - 5 months ago 20
Bash Question

Bash - How to call a function declared in a parent shell?

I am writing a bash script that calls functions declared in the parent shell, but it doesn't work.

For example:

$ function myfunc() { echo "Here in myfunc" ; }
$ myfunc
Here in myfunc
$ cat test.sh
#! /bin/bash

echo "Here in the script"
myfunc
$ ./test.sh
Here in the script
./test.sh: line 4: myfunc: command not found
$ myfunc
Here in myfunc


As you can see the script
./test.sh
is unable to call the function
myfunc
, is there some way to make that function visible to the script?

Answer

Try

$ export -f myfunc

in the parent shell, to export the function.