2012-01-26 4 views
-1

Поэтому я использую терминал и я выдать командуMac OS X Terminal - как я могу «очистить java foo»?

clear | java email11 

И я получаю это сумасшедшее выполнение половины кода я написал

"Enter input filename [default: fileContainingEmails.txt]: Enter output filename [default: ]:"

то ошибку:

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) 

и termainal восходит к:

myMachine:mydir me$ 

Так что мой вопрос, как я труба эта команда успешно?

+1

Что вы пытаетесь достичь? Первая команда используется для очистки терминала, а вторая, похоже, требует ввода и аргументов выходного файла, поэтому они, похоже, не связаны. – jcollado

+0

Вы показали нам команду, которая не работает и описала, что она делает. Вы не сказали нам, что вы хотите сделать. Мы можем только дать обоснованные предположения о том, как исправить вашу проблему. –

ответ

1

Попробуйте

$ clear | xxd 

, который дает вам что-то вроде

0000000: 1b5b 481b 5b32 4a      .[H.[2J 

Это вход в вашей email11 программе. Наверное, не ваше намерение. Вобще:

$ clear; java email11 

Это просто запускает две команды, одна за другой, как если бы вы ввели их на две отдельные линии.

Возможно, вам стоит прочитать документацию для командной оболочки, которую вы используете. По умолчанию оболочка на OSX - bash; вы можете see the manual here.

+0

Это работает! Есть ли буфер? Что это такое? – CodingIsAwesome

+0

clear посылает последовательность ANSI ESC для очистки терминала. См. Http://ascii-table.com/ansi-escape-sequences.php –

1

Я думаю, что вы хотели сделать

clear || java email11 
+0

Это тоже работает! Имеет ли || ясно, что осталось в каком-то буфере? Что происходит, когда я использую || ? – CodingIsAwesome

+1

'||' выполняет первую команду, затем выполняет вторую команду только в том случае, если первая успешно выполнена. Он не имеет ничего общего с буферизацией или перенаправлением ввода-вывода. Поскольку команда 'clear' обычно не сбой (если не задано' $ TERM'), я не уверен, почему вы используете '||', а не ';'. –

Смежные вопросы