我可以从ssh调用本地函数吗?

时间:2013-08-28 14:02:05

标签: linux function ssh sh

我知道我可以在SSH会话中调用本地shell中的变量,所以我假设我也可以这样调用函数。但这似乎不起作用。

我有一个脚本,用于检查我的本地计算机是否可以处理某些操作,如果我需要调用本地函数,如果本地计算机无法通过SSH连接到远程计算机并调用本地函数。

canHandle() {
  if [ -d /this_must_exist/ ]
  then
     return 0
  else
     return 1
  fi
}

localFunction() {
  // Predefined tasks
}

canHandle
if [ $? -eq 0 ]
then
   // Process locally using predefined functions
   localFunction
else
   ssh -t me@server << ENDSSH
   // Process remotely calling predefined local functions
   localFunction
   ENDSSH
fi 

1 个答案:

答案 0 :(得分:3)

Imho这不起作用。

本地变量在本地外壳上展开,并且已经过传输扩展。

你可以编写一个与本地函数相同的bash脚本,编写一个函数将其通过scp复制到远程系统,然后通过shh执行,然后删除它。