【问题标题】:How do I input an Enter using perl?如何使用 perl 输入 Enter?
【发布时间】:2011-04-03 23:57:24
【问题描述】:

我有一个需要调整的 perl 脚本。

脚本运行并要求我手动输入 IP 地址,但当它要求我输入 IP 地址时,我想在 IP 地址中进行硬编码,因此我需要告诉脚本输入 IP,然后按 Enter 键继续执行脚本。

有人可以告诉我怎么做吗?我确信这可能是非常基本的东西,但我不是一个脚本编写者,所以我不知道如何做到这一点。

我需要输入IP并回车的脚本如下:

print "\nPlease enter the IP address of the node:";
chomp($nodeIP= <STDIN>);

提前致谢。

【问题讨论】:

  • 听起来您正在尝试编辑请求 IP 的同一脚本?为什么要问呢?只需将 $nodeIP 设置为您想要的任何内容。 (如果出于某种原因需要,您也可以打印出 IP,但不要费心尝试通过您的程序输入 IP)

标签: perl


【解决方案1】:

最简单的就是替换

print "\nPlease enter the IP address of the node:";
chomp($nodeIP= <STDIN>);

只有

$nodeIp="192.168.2.1";

当然是使用你的地址,而不是我的路由器。

开始写入自己的标准输入,或者模拟击键是很麻烦的。

您不需要 chomp() 方法,因为它仅用于从行尾删除 Enter。

【讨论】:

    【解决方案2】:

    您是否正在尝试将一个脚本与另一个脚本自动化?如果是这种情况,您最好使用一个名为 expect (Expect: A Tool for Automating Interactions) 的工具。我已经将它用于一些奇怪的安装脚本。

    如果您尝试修改 Perl 脚本以等待用户提示,那么我将替换:

    print "\nPlease enter the IP address of the node:";
    chomp($nodeIP= <STDIN>);
    

    $nodeIP = "1.2.3.4";
    print "\nThe IP is $nodeIP.  If this is correct press ENTER to continue.\n";
    <STDIN>
    

    如果等待 ENTER 键按下,只需阅读 STDIN 并将其丢弃。

    【讨论】:

    • 抱歉,我知道我的问题看起来像是一个五年级学生提出的。我根本不是 perl 脚本编写者。但是,您的回答足以让我弄清楚我需要做的就是使用 $nodeIP="xxx";。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    相关资源
    最近更新 更多