我们最近在我们的 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/