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