Как сделать так, чтобы пользовательский ввод не появлялся в истории в модуле cmd?

Рассмотрим эту минимальную программу, которая использует cmd модуль:

import cmd

class Shell(cmd.Cmd):
    def do_input(self, _arg):
        '''Ask the user to input a string.'''
        s = input('String: ')
        print(s)

if __name__ == '__main__':
    Shell().cmdloop()

Вот пример взаимодействия с этой программой:

(Cmd) input
String: Hello!
Hello!
(Cmd) 

Теперь проблема заключается в том, что после нажатия кнопки клавиатуры вверх последний элемент истории вводится пользователем (т.е. Hello!), а не из командной строки (т.е. input).

Вопрос заключается в следующем: как получить только историю команд, введенных в командной строке (без истории входов, введенных с помощью input())?

0 ответов

Другие вопросы по тегам