2013-03-17 2 views
5

Когда я ввожу какую-то ошибочную команду в интерактивную среду оболочки Pig, она переходит в режим прослушивания (>>), как показано ниже. Как я благополучно выхожу из этой команды, но все равно остаюсь в среде оболочки свиньи. Ctrl + C выводит меня из оболочки свиньи, и я теряю настройку своей среды до этого момента.Безопасно покинуть команду оболочки свиньи

**grunt> Test_group = group Block2_Prep_filter by (page_visit_id as grp_page_visit_id, page_user_guid as grp_page_user_guid); 
>> ; 
>> 
>>** 
+0

Люди, есть ли выход из этого? – Sid

+0

Я столкнулся с той же проблемой. Я попробовал команду 'quit' или закончил с' Ctrl-C', но затем каким-то образом переопределяет существующие настройки keymap, а затем все мои 'backspace' преобразуются в'^H' – Incpetor

ответ

2

Я посмотрел исходный код свиньи. Это называется secondary_prompt (найденный в PigScriptParser.jj, файл грамматики анализатора свободного контекста для JavaCC). На мой взгляд, похоже, что его нельзя выпустить. Я пробовал множество комбинаций вещей, которые я видел в этом коде, и ничего не получилось. Также пробовал все слова типа выхода, о которых я мог думать, но безрезультатно.

Когда я сделал Control-D он вышел и отображается

>> 2013-06-19 12:51:43,632 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1000: 
Error during parsing. Lexical error at line 83, column 0. Encountered: <EOF> after : "" 

Глядя в классе Grunt, в тот момент, он делает:

parser.setInteractive(false); 
return parser.parseStopOnError(); 

Это говорит мне, что интерактивность заканчивается в этом точка.

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