安全退出Pig Shell命令

7

当我在Pig交互式shell环境中输入一些错误的命令时,它会进入监听模式(>>),如下所示。那么,我如何安全地退出这个命令,但仍然保持在pig shell环境中?

Ctrl + C可以让我退出pig shell,但我会失去之前设置的环境。

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

我遇到了同样的问题。我尝试使用“quit”命令或以“Ctrl-C”结尾,但是它会覆盖现有的键映射设置,然后所有我的“backspace”都被转换为“^H”。 - Incpetor
1个回答

4
我查看了Pig源代码。这个被称为secondary_prompt的东西(在PigScriptParser.jj中找到,这是JavaCC的上下文无关解析器语法文件)。在我看来,它似乎无法退出。我尝试了很多在那段代码中看到的组合,但都没有用。还尝试了我能想到的所有退出类型的单词,但都没有成功。
当我按下Ctrl + 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();

这句话对我来说意味着交互性已经结束了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接