Можно ли получить фактические команды, введенные в истории Bash? Если команда включала (например, подстановку или модификатор истории), то, что видно в истории, является полученной командой, а не напечатанной командой.
Пара примеров. Предположим, что для обеих команд в истории команда 123 - это ls Red*
Если я введу
!123
чтобы использовать командную строку 123 из истории, а теперь посмотрим на самую последнюю команду в моей истории, я буду видетьls Red*
а не!123
Если использовать встроенную команду оболочки
fc -s Red=Blue 123
и посмотреть историю, я увижуls Blue*
а неfc -s Red=Blue 123
Точно так же, если я использую стрелку вверх (создавая escape-последовательность ^[[A
), я получаю расширенную команду, а не фактический набранный текст).
Во всех этих примерах результирующая запись в истории - это то, что я ожидаю, но в некоторых случаях было бы полезно получить первоначально напечатанный текст. Например, хотя приведенные выше примеры довольно просты, я мог бы использовать сложную замену, которую я хочу редактировать.
Я понимаю, что это будет еще сложнее после инициализации оболочки, поскольку HISTFILE
не содержит эту информацию. Я не заинтересован в получении оригинального текста в этом случае (хотя это интересно).