linux - 从 Linux 机器在 Windows 机器上执行远程 Perl 脚本

标签 linux perl ssh execute shellexecute

我们最近在我们的 Windows 机器上设置了 SSH,这样我们就可以消除在我们的 Linux 机器上安装光盘的需要。我们正在使用 Pentaho,我正在编写一个 shell 脚本,它将从 Linux 机器通过 SSH 连接到 Windows 机器并执行 perl 脚本。

我能够以 SSH 方式写入 Windows 框并切换到包含我需要执行的 Perl 脚本的目录,我只是不知道如何实际执行它们。

这是我的:

#!/bin/sh
ssh -t xxxxx@xxxxx "cd /path/to/script/ /path/to/perl.exe HelloWorld.pl"

我也试过:

#!/bin/sh
ssh -t xxxxx@xxxxx "cd /path/to/directory/with/perl/script" \
                   "/path/to/perl.exe HelloWorld.pl"

两次尝试都会导致短暂的延迟,然后出现“与 xxxxx 断开连接”并且 perl 不会运行。我可以通过 shell 手动完成所有这些步骤,但似乎无法让它们以脚本形式工作。请注意,我能够执行 perl 脚本的唯一方法是让 shell in perl 脚本所在的目录。

最佳答案

您需要使用分号来结束您的语句,或者执行一个语句。 尝试以下操作:

ssh xxxxx@xxxxx "cd /path/to/script/; /path/to/perl.exe HelloWorld.pl"

或:

ssh xxxxx@xxxxx "/path/to/perl.exe /path/to/script/HelloWorld.pl"

关于linux - 从 Linux 机器在 Windows 机器上执行远程 Perl 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11004401/

相关文章:

arrays - Perl - 将 "zipper"两个数组放在一起的内置函数?

node.js - 存储 SSH 登录凭据?

linux - bash 变量扩展通过管道传输到 ssh

ssh - 在 Pycharm 中配置 SFTP

python - 乌尔都语字体的逆向渲染

linux - 如何将 '<' 和 '>' 传递给 bash 脚本?

perl - @{$list_ref} 和 @$list_ref 在 Perl 中是等价的吗?

perl - Perl 中下划线($_、@_)的含义是什么?

linux - 从内核代码的其他部分访问/proc fs 变量

c - 防止 OpenGL 缓冲帧