Поэтому я нашел способ передачи переменных среды через ssh без необходимости изменения ни сервера, ни клиента: передача переменной среды через SSH / цитирование в bash / sh / csh / tcsh
Но я также хотел бы иметь возможность передавать функции bash, подобные этой:
$ myfunc() {
> echo Func $1
> }
$ export -f myfunc
$ parallel myfunc ::: a
Func a
Функции не передаются через ssh:
$ parallel -S server myfunc ::: a
bash: myfunc: command not found
$ parallel --env myfunc -S server myfunc ::: a
bash: line 2: myfunc: command not found
Но содержание функции передается красиво:
$ parallel --env myfunc -S server echo \$myfunc ::: a
() { echo Func $1} a
Поэтому, похоже, все, что мне нужно сейчас сделать, это как-то сказать bash, что $ myfunc - это действительно функция myfunc.
Как я могу это сделать?