Команда Shell поместить последнюю строку вывода в текущую командную строку

Оболочки имеют полезную функцию, при которой нажатие клавиши ВВЕРХ ВВЕРХ заменяет содержимое текущей командной строки предыдущей введенной командой . (И если вы сделаете это снова, команда до этого и т. Д.)

Мне нужна аналогичная функция, при которой нажатие (какая-то другая кнопка) заменяет содержимое текущей командной строки последней строкой вывода из предыдущей команды (и если вы сделаете это снова, предыдущую строку вывода и т. Д.). )

Есть ли какая-нибудь оболочка, которая предоставляет такую ​​функцию?

Мотивация заключается в том, что вы часто хотите запустить команду, а затем запустить другую команду с частью вывода предыдущих команд в качестве входных данных. (Нет, я не хочу делать ничего, включая вывод строки из одной команды в следующую. Я ищу интерактивный опыт, где вы запускаете первую команду, видите ее вывод и затем получаете строку этого вывода в вашу следующую команду, без необходимости нажимать на мышь, чтобы сделать неуклюжие копии и вставки.)

Если вы запустите оболочку внутри screen , вы можете использовать режим прокрутки screen для этого. Использование привязок ключевых слов по умолчанию:

  • Ctrl A Esc переходит в режим прокрутки;
  • клавиши перемещения перемещаются вверх и вниз;
  • Y копирует текущую строку в буфер пасты и оставляет режим прокрутки;
  • Ctrl A ] вставляет буфер.

Документация (run man screen ) дает намного больше деталей и описывает другие функции режима прокрутки (включая поиск, частичные копии и т. Д.).

tmux несомненно, имеет схожие функции.

Если я правильно прочитал, вы хотите взять последнюю строку из вывода одной команды и выполнить ее как новую команду. Таким образом:

 $ $( /path/to/command_generator | tail -n1 ) 

Или, если это содержимое файла на диске:

 $ $( tail -n1 /path/to/RUNME.txt ) 

Если вы хотите отредактировать это до выполнения, вы можете использовать vipe , который является инструментом для редактирования содержимого трубопроводов в полете:

 $ $( /path/to/command_generator | vipe )