有没有巧妙的方法可以通过ssh在远程主机上运行本地Bash函数?
例如:
#!/bin/bash
#Definition of the function
f () { ls -l; }
#I want to use the function locally
f
#Execution of the function on the remote machine.
ssh user@host f
#Reuse of the same function on another machine.
ssh user@host2 f
是的,我知道它不起作用,但有没有一种方法可以实现这个目标?
typeset -f f
命令,只发送一个函数的定义即可。 - Henk Langeveldf()
,那么你可以像这样传递参数:f param1 param2 ...
。在f()
函数内部,你可以通过$1, $2, ..., $n
来引用这些参数。 - alvitsdeclare -f
而不是typeset -f
。谢谢。 - Felipe Alvarezdeclare -f
或typset -f
时,我会收到syntax error near unexpected token ;
的语法错误提示。 - guygrinberger