2013-08-28 104 views
1

我知道我可以在SSH会话中调用本地shell中的变量,所以我认为我也可以用这种方式调用函数。但这似乎并不奏效。我可以从ssh调用本地函数吗?

我有一个脚本,检查我的本地计算机是否可以处理某些操作,以及是否需要调用本地函数,如果本地计算机无法通过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 [email protected] << ENDSSH 
    // Process remotely calling predefined local functions 
    localFunction 
    ENDSSH 
fi 
+1

可能重复[Shell脚本:从脚本通过ssh运行函数](http://stackoverflow.com/questions/22107610/shell-script-run-function-from-script-over-ssh) – RASG

回答

3

Imho这不起作用。

局部变量会在您的本地外壳上展开,并被传递展开。

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

+0

hmm ..我觉得一定有办法。也许某种方式回应我的功能,并在服务器上执行和“评估”。 idk,我只是觉得这应该是可能的,没有重复! –

+1

以某种方式凌乱的方式来回显功能是: ''echo function'type local_function |尾巴-n + 2''' – MyChaOS

相关问题