Часто я обнаруживал, что запустил команду в bash и после ее выполнения понял, что хотел бы получить (или иным образом) доступ к результату. Я хочу избежать повторного запуска команды либо из-за времени выполнения, либо из-за того, что она использует ресурс, который не даст такой же вывод. Есть один или несколько способов сделать это?
2 ответа
0
Лучший способ для скриптов - объявить текстовую переменную и сохранить в ней вывод команды. Тогда вы можете использовать эту переменную столько раз, сколько захотите.
Out=$(command)
echo "$Out" | grep 'some text'
echo "$Out" | grep 'other text'
unset Out #or just logout
Другой способ - сохранить выходные данные в текстовый файл, но у вас должны быть разрешения на запись на диск и удаление файла после использования.
Также есть несколько других способов доступа к журналу терминала:
- Настройте ведение журнала операционной системы на удаленном сервере через
auditd
иpam_tty_audit.so
. Журнал будет храниться на удаленном сервере журнала. Только пользовательский ввод сохранен, и пользователь не может изменить его. - Настройте запись в файл в пользовательском терминале (у Putty, SecureCRT есть опции сессии). Журнал хранится на компьютере пользователя
- Получить запись сеанса через
rootsh
.
0
Вы можете использовать такие команды, как tee и xargs
tee - read from standard input and write to standard output and files
xargs - build and execute command lines from standard input
перенаправить вывод в файл, откуда вы можете получить к нему доступ