繁体   English   中英

如何从控制台将无限 stream (bash) 转换为 java args?

[英]How to make infinite stream (bash) into java args from console?

考虑以下 java 程序:

class PrintName{
    public static void main(String[] args){
        System.out.println("Hi " + args[0]);
    }
}

现在我只是从控制台编译并执行它(我在 Ubuntu 服务器上):

~$:javac PrintName.java
~$:java PrintName "Fernando"

我得到下一个 output:

Hi Fernando

我知道在 Linux 中有类似“yes”的命令,通过它我可以获得无限的 stream 数据。 我的想法是做这样的事情:

yes "Fernando" | java PrintName >> my_file.txt

我希望能够将“无限”费尔南多传递给我的程序并让它无限运行多次,然后能够操纵 STDO 重定向到某个文件。

我不知道我是否解释清楚,抱歉我对英语的处理不好。 非常感谢您的宝贵时间。

这是您想要命令的地方:

yes Fernando | xargs java PrintName

xargs 获取标准输入的每一行,并将其作为命令行 arguments 传递给给定的命令。

要将其重定向到文件,您可以将其包装在分组构造中:

{ yes Fernando | xargs java PrintName; } >> my_file.txt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM