我知道我可以在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
答案 0 :(得分:3)
Imho这不起作用。
本地变量在本地外壳上展开,并且已经过传输扩展。
你可以编写一个与本地函数相同的bash脚本,编写一个函数将其通过scp复制到远程系统,然后通过shh执行,然后删除它。