Некоторые программы (, в том числе все, что вы поместили в свой скрипт,)определяют, является ли вывод терминалом или файлом, и отключают цвета в этом случае. Если вы запустите свой скрипт с помощью программы script
, это позволит избежать этой проблемы, захватив все символы в файл с именем typescript
, например,
script
-c
скрипт
(где последний, конечно, ваш сценарий)и более поздние
cat typescript
В зависимости от системы программаscript
может использовать разные аргументы. Первый (со значением по умолчаниюtypescript
)— это место, где программаscript
записывает свой вывод:
тот, что в Debian/Ubuntu/и т. д., находится в пакете с именем «bsdutils», и команда должна быть задана с использованием опции -c
, например, «script
-c
скрипт ».
в системеBSDпараметр-c
отсутствует, и команда может быть задана как параметры после файла , например,. "script
typescript
скрипт ".
Хотя поддерживается в (вероятно )каждой системе POSIX,script
не является частью POSIX .
Nohup сообщает вам, что запущенный фоновый процесс отключил эти потоки. Это потому, что нельзя гарантировать, что они не будут использованы для завершения процесса (, например. SIGINT для стандартного ввода или SIGPIPE, если стандартный ввод подключен к каналу ).
Одним из побочных эффектов является то, что если python пишет сообщения об ошибках, они будут вставлены в ваш обычный вывод (в случайных местах из-за буферизации ), что может нарушить дальнейшую обработку этих данных.
Безопасная процедура — выполнять эти перенаправления самостоятельно. стандартный ввод < /dev/null, stderr 2>&1 или 2>/dev/null или 2>some.log.