【问题标题】:ssh command not running perl scriptssh 命令未运行 perl 脚本
【发布时间】:2011-05-31 21:59:55
【问题描述】:

我有以下 perl 脚本

#!/usr/bin/perl
$userinput =  <STDIN>;
chomp ($userinput);
while ( $userinput ne "DONE")
{
        print STDOUT "User typed ----->  $userinput\n";
        $userinput =  <STDIN>;
        chomp ($userinput);
}

我已经在 unix 机器上复制了这个,在本地这工作正常,但是当我尝试使用 ssh 从另一个机器远程运行这个 perl 脚本时,它不起作用。

我正在使用以下命令运行此脚本。

ssh username@hostname /tmp/testremote.pl

它只是挂在 STDIN 上,不返回任何内容。

知道为什么这不起作用吗?

【问题讨论】:

  • 明确一点:/tmp/testremote.pl 必须存在于 remote 机器上——是吗?

标签: perl unix ssh


【解决方案1】:

尝试在#之后添加$|=1;!行。

【讨论】:

    【解决方案2】:

    您的终端的STDIN 可能未正确重定向到远程终端。

    你可以试试:

    ssh username@hostname 'echo bla bla bla | /tmp/testremote.pl'
    

    如果这可行,则表明 perl 脚本没问题,但问题在于您的重定向。

    【讨论】:

    • 如果不是最后一个“bla”之后的单引号,那将是一个很好的测试。
    【解决方案3】:
    ssh username@hostname '/tmp/testremote.pl'
    

    请尝试在您的命令中添加单引号。

    【讨论】:

    • 只有在发送到 ssh 的命令需要 shell 插值时才会有所帮助。
    猜你喜欢
    • 2016-08-16
    • 2016-11-15
    • 2012-08-24
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 2016-11-09
    • 2013-06-12
    相关资源
    最近更新 更多