Описание тега motorola-moto-g2
Я думаю, что причина такого поведения заключается в том, как Баш обрабатывает модификация предыдущей линии истории. Какие команды, такие как предыдущий-история
(Ц-П) или обратный поиск-история
(с-Р) сделать выборку предыдущих записях:
предыдущая история (с-п)
Принести предыдущую команду из списка истории, возвращаешься в список.
Когда предыдущую историю запись извлечена , все напечатано, как если бы он был напечатан. Теперь, вы можете просто изменить его, но не выполнять (как в вашем примере) или изменить и выполнить его. Когда вы его выполните вы вызываете принимаем он-лайн
:
принимаем строки (перевод строки или возврат)
Принять строку независимо от того, где находится курсор. Если эта линия
непустой, добавить его в список истории по обстановке
в HISTCONTROL и переменные HISTIGNORE. Если эта линия является
изменение линии истории, потом восстановить линию истории
исходное состояние.
После нажатия кнопки Возврат измененная строка будет сохранена в истории и исходной линии остаются нетронутыми. Но давайте подумаем, что произойдет, если вы просто измените извлечена без клавишей возврата - это измененный, но не выполняется так примите строки
не вызывается. Что происходит, заключается в том, что оригинальная история линии будет изменен.
Чтобы увидеть это на практике, добавьте эту строку в ваш ~/.inputrc
и начать новый подуровень:
набор Марк-модифицированных линий
Теперь давайте сделаем то же самое как в вашем примере:
$ Эхо апрель # 0) Нажмите клавишу Return - `принимать он-лайн` называется
# 1. нажмите C-R и типа "апрель" и вкладку - вы увидите это, потому что
# `Эхо апрель' в истории:
$ Эхо апреля
# 2. теперь убейте эту строку, используя C-K или C-у. С-Р "апрель" не работает
# потому что нет `Эхо апрель' в истории
# 3. НЕ НАЖИМАЙТЕ СЮДА! Нажмите стрелку вверх, первые пару раз и
# нажмите клавишу Enter, чтобы вызвать другую команду, это может быть все, что вы были
# в вашей истории, но только здесь возврата нет
# 4. теперь, в разделе "История", где-то там вы увидите пустую строку. Это
# может выглядеть немного отличаться в зависимости от HISTTIMEFORMAT но учтите,
# есть звездочка рядом с историей номер строки и команды
# отсутствует. Он пропал, потому что он был изменен и сохранен в 2).
$ история
(...)
483* 2015-04-12 02:36:19
Как вы заметили во 2 комментария на ваш вопрос, если вы нажали вернуться в 2) вы не измените первоначально команда вступила в точке 0) и могли бы вызвать его с С-Р.
ОК, я понимаю, что это может быть довольно запутанным и трудно понять на первый взгляд. Вернуться, если у вас возникли вопросы, я постараюсь быть более ясным.