Как сохранить вывод последней выполненной команды из терминала?

Как сохранить вывод последней выполненной команды из терминала?

У меня есть команда инкрементальной сборки для моего проекта, которая выведет что-то, если я сделаю чистую сборку, и что-то другое (меньшее), если я сделаю инкрементальную сборку.

Как мне сохранить это, если я уже запустил чистую сборку mycommand.shи вывод выводится в окне терминала (без использования копирования и вставки)?

Я забыл сделать

mycommand.sh > myfile.txt

или

mycommand.sh >> myfile.txt

для сохранения вывода в файл.

решение1

Хотя $(!!)повторный запуск предыдущей команды может показаться (а иногда и быть) решением, у него также есть свои недостатки, с которыми вам придется столкнуться.в полной мерепонимать, как его использовать.

Пример: Если команда внесла некоторые изменения, например

rm -rv /tmp/*

будет сделано, то повторный запуск этой команды любым способом можетнетвыводит тот же вывод, что и раньше, за исключением того, что если /tmp/ был пуст до первого запуска и остается пустым во второй раз, вывод должен быть таким же.

Итог: нетбезопасныйспособ повторно использовать или сохранить (без копирования и вставки) вывод последней команды, если вы не сохранили его во время выполнения команды.

решение2

Это невозможно, поскольку bash не выделяет никаких выходных данных ни одному параметру или блоку в своей памяти.

Однако вы можете $(!!)использоватьпересчитать(не использовать повторно) вывод последней команды.

Сам !!по себе выполняет последнюю команду.

$ echo pierre
pierre
$ echo my name is $(!!)
echo my name is $(echo pierre)
my name is pierre

Источник:Повторное использование вывода последней команды в Bash

Связанный контент