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

标签 linux function ssh sh

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

相关文章:

linux - sh 返回 : can only `return' from a function or sourced script

php - 无法在文本区域中显示带有换行符的文本,如何保留它们?

python - 如果进程通过 paramiko ssh session 运行并且最后以 "&"运行,则进程终止

javascript - 用户将学生成绩输入到文本框输出中,然后计算最终的字母成绩

javascript - 为什么 JavaScript 中不允许顶级匿名函数?

linux - 通过 SSH 将密码作为环境变量传递

git ssh无法访问docker容器中的gitlab

linux - 查找哪个程序运行另一个

linux - 用逗号和空格替换换行符以生成 1 行输出

java - 在 Java 1.6 File.renameTo() atomic on linux 中?