无法成功通过ssh声明-f

时间:2018-03-12 14:04:43

标签: linux bash ssh

我正在尝试通过SSH在远程服务器上声明一个函数。

funcA () { echo 'do something'; }
ssh $somewhere " $(declare -f funcA); funcA " 

我一直在接受:

Badly placed ()'s.
{: Command not found.

为什么?

1 个答案:

答案 0 :(得分:0)

这是因为远程用户将其登录shell设置为csh并且您提供了bash代码。这就像尝试使用C编译器编译Java代码,或将Python代码粘贴到PHP中一样。

您可以改为csh运行bash,然后输入命令bash:

ssh $somewhere "bash -s" <<< " $(declare -f funcA); funcA "