Linux Mac OS X终端-我该怎么做;清除“javafoo”吗;?

Linux Mac OS X终端-我该怎么做;清除“javafoo”吗;?,linux,macos,unix,terminal,pipe,Linux,Macos,Unix,Terminal,Pipe,所以我使用终端,我发出命令 clear | java email11 我写的一半代码都被疯狂地执行了 “输入输入文件名[默认值:fileContainingEmails.txt]:输入 输出文件名[默认值:]:“ 然后是一个错误: Enter input filename [default: fileContainingEmails.txt]: Enter output filename [default: ]: Exception in thread "main" java.util.No

所以我使用终端,我发出命令

clear | java email11
我写的一半代码都被疯狂地执行了

“输入输入文件名[默认值:fileContainingEmails.txt]:输入 输出文件名[默认值:]:“

然后是一个错误:

Enter input filename [default: fileContainingEmails.txt]: Enter output filename [default: 
]: Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Scanner.java:1516)
    at email11.main(email11.java:39)
所有这些加在一起就像:

myMachine:mydir me$ clear | java email11
Enter input filename [default: fileContainingEmails.txt]: Enter output filename [default: 
]: Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Scanner.java:1516)
    at email11.main(email11.java:39)
这个术语可以追溯到:

myMachine:mydir me$ 

因此,我的问题是,如何成功地通过管道传递此命令?

我想您希望这样做

clear || java email11
试一试

这让你觉得

0000000: 1b5b 481b 5b32 4a                        .[H.[2J
这是您的email11程序的输入。可能不是你的本意。 只要做:

它只是一个接一个地运行这两个命令,就像您在两行上分别键入它们一样


您可能应该阅读正在使用的命令shell的文档。OSX上的默认shell是bash;你可以。

你想实现什么?第一个命令用于清除终端,第二个命令似乎需要输入和输出文件参数,因此它们似乎不相关。您向我们展示了一个不起作用的命令,并描述了它的作用。你还没告诉我们你想做什么。对于如何纠正您的问题,我们只能做出有根据的猜测。这同样有效!| | |清除缓冲区中剩余的东西吗?当我使用| |?
|
执行第一个命令时会发生什么情况,然后仅当第一个命令成功时才执行第二个命令。它与缓冲或I/O重定向无关。由于
清除
命令通常不会失败(除非未设置
$TERM
),因此我不确定为什么要使用
|
而不是
.clear发送ANSI ESC序列以清除终端。看见
0000000: 1b5b 481b 5b32 4a                        .[H.[2J
$ clear; java email11