Я хотел бы добавить как последнюю команду, так и вывод последней команды в текстовый файл для целей учебника.
Например: после того, как я выполню команду ls
в своем домашнем каталоге, я вижу это на экране
bguiz@sheen:~$ ls
Desktop Music Documents
Затем я хочу ввести одну команду, которая добавит следующее в текстовый файл с именем cmd.txt
$ ls
Desktop Music Documents
Идея состоит в том, что каждый раз, когда я ввожу команду, я могу записать как саму команду, так и ее вывод в один и тот же файл, и после нескольких команд она продемонстрирует определенную серию команд. Я знаю, что это можно сделать вручную - но зачем это делать, если есть легкая альтернатива, верно?
Это то, что я приготовил до сих пор:
echo -n "\$ " >> cmd.txt; echo !-1:p >> cmd.txt; !-1 >> cmd.txt
Это работает, но довольно неуклюже, и имеет несколько ошибок, таких как неспособность сохранить точное форматирование экрана.
Это более элегантное решение?
Спасибо за ответы до сих пор, но у меня есть требование для работы с pipe, например:
ls -lart | grep ^d
Необходимо добавить это в файл:
$ ls -lart | grep ^d
drwx------ 14 bguiz staff 4096 2010-03-03 15:52 .cache
drwx------ 5 bguiz staff 4096 2010-03-03 09:38 .ssh