How to stop user input from appearing in history in cmd module?

268 views Asked by At

Consider this minimal program that uses the cmd module:

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()

Here's a sample interaction with this program:

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

Now the problem is that upon pressing the up keyboard button, the last history item is from the user input (i.e. Hello!) rather than from the shell's prompt (i.e. input).

The question is: How can I get only the history of commands entered at the shell prompt (without the history of inputs entered using input())?

0

There are 0 answers