Как сделать так, чтобы пользовательский ввод не появлялся в истории в модуле cmd? - PullRequest
0 голосов
/ 24 февраля 2019

Рассмотрим эту минимальную программу, использующую модуль 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())?

...