1

我知道我可以在 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 
4

1 回答 1

3

恕我直言,这行不通。

局部变量在您的 Local Shell 上得到扩展,并被转移扩展。

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

于 2013-08-28T14:06:07.087 回答