Как вывести команду linux и возвращенный результат в одном текстовом файле?

Все команды, которые я видел до сих пор, выглядят как command > file или command >> file, которые выводят результат в указанный файл. Например, когда я печатаю openssl version > lab4.txt, все, что я вижу в текстовом файле, это OpenSSL 1.0.1e-fips 11 Feb 2013.

Что если я захочу вывести и набранную мной команду, и результат, который был возвращен один под другим, как этот?

linux2[20]% openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013

Спасибо за помощь

3
задан 20 April 2015 в 04:46

2 ответа

Оператор перенаправления command > file перенаправит STDOUT команды или STDERR команды, если используется как command 2> file или оба, если используется как &> в ударе или в любой оболочке портативным устройством command > file 2>&1 путь. Я не знаю ни о каком прямом методе использовать перенаправление, которое может достигнуть того, в чем Вы нуждаетесь.

Хотя это - возможное использование script программа. Это в основном сохранит все распечатанное на терминале в этом script сессия.

От man script:

script makes a typescript of everything printed on your terminal. 
It is useful for students who need a hardcopy record of an 
interactive session as proof of an assignment, as the typescript file 
can be printed out later with lpr(1).

Можно запустить a script сессия, просто введя script в терминале все последующие команды и их выводы будут все сохранены в названном файле typescript в текущем каталоге. Можно сохранить результат в другой файл также, только начав script как:

script output.txt

К выходу из системы screen сессия (прекращают сохранять содержание), просто введите exit.

Вот пример:

$ script output.txt
Script started, file is output.txt

$ ls
output.txt  testfile.txt  foo.txt

$ exit
exit
Script done, file is output.txt

Теперь, если я считал файл:

$ cat output.txt

Script started on Mon 20 Apr 2015 08:00:14 AM BDT
$ ls
output.txt  testfile.txt  foo.txt
$ exit
exit

Script done on Mon 20 Apr 2015 08:00:21 AM BDT

script также имеет много опций, например, работающий бесшумно -q (--quiet) не показывая/сохраняя сообщения программы, это может также выполнить определенную команду -c (--command) вместо сессии, это также имеет много других опций. Проверить man script получить больше идеи.

6
ответ дан 20 April 2015 в 14:46

Необходимо было бы создать сценарий со следующим:
echo 'command -params/r' > file.lst
command -params >> file.lst

1
ответ дан 20 April 2015 в 14:46

Другие вопросы по тегам:

Похожие вопросы: