使用shell脚本写入程序的标准输入

And*_*een 1 java unix bash

我想从Unix(bash)命令行向以下Java程序发送文本输入,以便它将打印输入的文本.如何编写一个shell脚本,将字符串"Print this"发送到Java程序?

import java.util.Scanner;
public class ReadStuff{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter some text:");
        System.out.println(scan.nextLine());
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*Lin 6

使用 echo

echo "Print this" | java ReadStuff
Run Code Online (Sandbox Code Playgroud)

请注意,这将输出:

Enter some text:
Print
Run Code Online (Sandbox Code Playgroud)

因为你正在调用Scanner.next()哪个读取下一个单词,而不是整行.

或者,如果你在文件中有东西:

cat file_with_Print_this | java ReadStuff
Run Code Online (Sandbox Code Playgroud)