msgattrib
отображать цвета только при выполнении с реального терминала. Вы можете использовать команду unbuffer
, которая является частью expect
, чтобы заставить msgattrib
думать, что она выполняется из реального терминала, а затем использовать опцию -r
для обработки экранов ANSI в less
:
unbuffer msgattrib --untranslated pl.po | less -r
Вы можете сделать это в любой команде, производящей цвета. (Экранирующие коды ANSI )на основе существования tty.
Стоит попробовать сделать так, как вы предложили. Вот несколько советов на случай, если это не работает должным образом:
Обычно .bash_aliases
не считается файлом автозапуска. «Чистый» способ сделать это — добавить модуль systemd, но я понимаю, что это может быть слишком сложно для рассматриваемой проблемы.
Вы говорите, что "закрыли" Streamlink --за то, что предложили лучший способ его автоматического запуска, может быть интересно, как именно взаимодействие с streamlink (, например. закрытие )работает?
Синтаксис сценария оболочки &&
означает :Запустить вторую команду, если первая завершилась успешно. Если вы используете обычное сочетание клавиш, такое как CTRL -C, для остановки потоковой связи, это может означать, что она фактически завершается с кодом ошибки. В этом случае запись ;
, возможно, была бы лучше (выключение независимо от кода возврата):
someprogram; shutdown now
Существует еще одно предостережение, которое следует учитывать. :В системах UNIX завершение работы обычно считается действием, которое может выполнять только системный администратор. В последних системах Linux существуют различные механизмы, обеспечивающие завершение работы в качестве обычного пользователя, если другие пользователи не вошли в систему и т. д. Я рекомендую проверить (, прежде чем добавлять его в автозапуск ), если shutdown now
команда работает как положено. Если это не работает, возможно, потребуется настроить sudo, чтобы пользователь мог запустить завершение работы.
Наконец, добавление завершения работы непосредственно после запуска программы, как описано в этом вопросе, обычно работает хорошо. В случае более сложного приложения (, например. запускает другие процессы и завершает работу до того, как все они завершатся ), может быть интересно отслеживать существование процесса с помощью отдельного сценария и запускать завершение работы, когда он отсутствует.