Как я могу записать вывод терминала в файл, но оставить окно терминала активным, чтобы позволить отвечать на запросы?

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

Можно ли это сделать?

Благодарю.

Майк

1 ответ

При ответе вы вводите данные через дескриптор файла 0, например, STDIN, а программа показывает вывод по дескриптору файла 1, например, STDOUT. Как вы можете видеть, эти двое работают над разными файловыми дескрипторами, и манипулирование одним не должно мешать работе другого.

Обратите внимание, что существует также файловый дескриптор 2, т. Е. STDERR, обычно используемый для отображения сообщений об ошибках.

В вашем случае запустите скрипт как:

./myscript.sh >~/script.out

Теперь вы можете предоставить входные ответы на вопросы скрипта через STDIN, а выходные данные программы будут сохранены в ~/script.out,

Вы также можете сохранить ошибку, например, в другом файле:

./myscript.sh >~/script.out 2>~/script.err

STDOUT будет сохранен в ~/script.out и STDERR будет сохранен в ~/script.err,

Вы можете сохранить вывод и ошибку как в одном файле:

./myscript.sh >~/script.all 2>&1

Сейчас ~/script.all будет содержать выходные данные и сообщения об ошибках (если таковые имеются) от myscript.sh,

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