1

Есть ли способ в bash или zsh автоматически передать весь вывод из любых команд, которые я запускаю через другую программу?

Например, если я запустил эту команду

$ cat /tmp/it

Я бы хотел, чтобы он работал так, как я написал так:

$ cat /tmp/it | tee /tmp/cmdoutput

где | tee /tmp/cmdoutput может быть любой командой. Мои варианты использования - для раскрашивания и для сохранения вывода для команд, которые я запускаю, чтобы я мог редактировать их в vim или искать их в vim. Я делаю это уже вручную, но хочу знать, есть ли способ сделать это автоматически, и я ищу общее решение!

1 ответ1

1

Используйте команду script :

Сценарий делает машинопись всего, что отображается на вашем терминале. Это полезно для студентов, которым нужна бумажная запись интерактивного сеанса в качестве доказательства задания, поскольку файл машинописного текста можно распечатать позже с помощью lpr(1).

Если указан файл аргумента, скрипт сохраняет диалог в этом файле. Если имя файла не указано, диалог сохраняется в машинописном тексте.

Когда вы будете готовы начать запись файла журнала, введите:

script /tmp/cmdoutput

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

exit

Источник: Как мне зарегистрировать весь ввод и вывод в терминальной сессии?

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