我知道我可以在SSH session 中从本地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

最佳答案

恕我直言,这行不通。

局部变量在您的本地Shell上展开,并被转移。

您可以编写一个与本地功能相同的bash脚本,并编写一个功能以通过scp将其复制到远程系统,然后通过shh在远程系统上执行该脚本,然后再将其删除。

关于linux - 我可以从ssh调用本地函数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18490175/

10-14 20:19
查看更多