Кажется, работает на меня.Однако ваша демонстрация не демонстрирует проблемы.Нигде не было источника сценариев, которые вы катали.
Мой рабочий пример:
bash$ cat testfunction
function thingie () { echo "Ima function"; }
bash$ cat dofunction
#!/bin/bash
. /path/to/this/directory/testfunction
thingie
bash$ ./dofunction
Ima function
Vs.нерабочий пример:
bash$ cat dontdofunction
#!/bin/bash
cat /homes/bgerard/personal/tmp/testfunction
thingie
bash$ ./dontdofunction
function thingie () { echo "Ima function"; }
./dontdofunction: line 3: thingie: command not found
Используйте "."или (эквивалентно) «источник» вместо «кошка», и он должен работать.