-1

Часто я обнаруживал, что запустил команду в bash и после ее выполнения понял, что хотел бы получить (или иным образом) доступ к результату. Я хочу избежать повторного запуска команды либо из-за времени выполнения, либо из-за того, что она использует ресурс, который не даст такой же вывод. Есть один или несколько способов сделать это?

2 ответа2

0

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

Out=$(command)

echo "$Out" | grep 'some text'
echo "$Out" | grep 'other text'

unset Out      #or just logout

Другой способ - сохранить выходные данные в текстовый файл, но у вас должны быть разрешения на запись на диск и удаление файла после использования.

Также есть несколько других способов доступа к журналу терминала:

  1. Настройте ведение журнала операционной системы на удаленном сервере через auditd и pam_tty_audit.so . Журнал будет храниться на удаленном сервере журнала. Только пользовательский ввод сохранен, и пользователь не может изменить его.
  2. Настройте запись в файл в пользовательском терминале (у Putty, SecureCRT есть опции сессии). Журнал хранится на компьютере пользователя
  3. Получить запись сеанса через 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

перенаправить вывод в файл, откуда вы можете получить к нему доступ

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .