Can I call a function of a shell script from another shell script?
Refactor your second.sh
script like this:
func1 {
fun="$1"
book="$2"
printf "func=%s,book=%s\n" "$fun" "$book"
}
func2 {
fun2="$1"
book2="$2"
printf "func2=%s,book2=%s\n" "$fun2" "$book2"
}
And then call these functions from script first.sh
like this:
source ./second.sh
func1 love horror
func2 ball mystery
OUTPUT:
func=love,book=horror
func2=ball,book2=mystery
You can't directly call a function in another shell script.
You can move your function definitions into a separate file and then load them into your script using the .
command, like this:
. /path/to/functions.sh
This will interpret functions.sh
as if it's content were actually present in your file at this point. This is a common mechanism for implementing shared libraries of shell functions.