Командная строка Sage `reset()` не может создать команду выхода

Я использую интерфейс командной строки Sage, запущенный из оболочки Linux. Обычно ввод exit <return> приводит к выходу из командной строки и возврату в оболочку. Однако, если я использую команду reset() во время сеанса, это больше не работает:

[matthew@tera ~]$ /usr/local/sage/sage-6.2-x86_64-Linux/sage
┌────────────────────────────────────────────────────────────────────┐
│ Sage Version 6.2, Release Date: 2014-05-06                         │
│ Type "notebook()" for the browser-based notebook interface.        │
│ Type "help()" for help.                                            │
└────────────────────────────────────────────────────────────────────┘
sage: exit
Exiting Sage (CPU time 0m0.14s, Wall time 0m4.70s).
[matthew@tera ~]$
[matthew@tera ~]$ /usr/local/sage/sage-6.2-x86_64-Linux/sage
┌────────────────────────────────────────────────────────────────────┐
│ Sage Version 6.2, Release Date: 2014-05-06                         │
│ Type "notebook()" for the browser-based notebook interface.        │
│ Type "help()" for help.                                            │
└────────────────────────────────────────────────────────────────────┘
sage: reset()
sage: exit
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/usr/local/sage/sage-6.2-x86_64-Linux/local/lib/python2.7/site-packages /sage/all_cmdline.py in <module>()
----> 1 exit

NameError: name 'exit' is not defined
sage:

Обратите внимание, что quit тоже не работает.

Итак, похоже, что функция reset() стирает exit из пространства имен вместе с любыми пользовательскими переменными и не может воссоздать его, как это делает x, например, предопределенная символическая переменная.

  • Это ошибка, о которой нужно сообщить, или я что-то упустил?

  • Есть ли альтернативный способ выхода из командной строки Sage? Я застрял в этом несколько раз, и в итоге я нажимаю Ctrl-z, а затем завершаю сеанс оболочки; это кажется и грязным, и плохим, так как я заставляю оболочку убить процесс Sage.


person Matthew    schedule 22.07.2014    source источник


Ответы (1)


Есть ли альтернативный способ выйти из командной строки Sage?

Я обычно использую Ctrl-D в любом случае...

Но это действительно кажется проблемой. Обратите внимание, что это вещь Ipython, поэтому, возможно, reset должен избавиться от волшебных вещей, но я не понимаю, почему. Я открыл Trac 16704, хотя, возможно, это желаемое поведение, потому что это Ipython.

person kcrisman    schedule 23.07.2014
comment
Спасибо! Sage ловит Ctrl-D так же, как и Ctrl-C, или ОС ловит его так же, как Ctrl-z, и отправляет сигнал обратно в Sage? Спасибо также за сообщение об ошибке; Я не был уверен, как это сделать. - person Matthew; 23.07.2014