Код: Выделить всё
unbuffer npm test 2>&1 | tee >(sed -r "s/\x1B\[[0-9;]*[a-zA-Z]//g" > ./tmp/output.log)
Код: Выделить всё
#!/bin/bash
npm test
Но когда npm test скрыт внутри упомянутой выше оболочки, это не работает:
Код: Выделить всё
#!/bin/bash
unbuffer npm test 2>&1 | tee >(sed -r "s/\x1B\[[0-9;]*[a-zA-Z]//g" > ./tmp/output.log)
Я пробовал использовать такие вещи, как PID=$!, чтобы захватить PID фонового процесса и убить его с помощью ловушки ' убить $PID' SIGINT при выходе из сценария, но в моем В этом случае это просто фиксирует PID команды tee, а не npm test. Таким образом, у меня все еще остается процесс потерянного узла, работающий в фоновом режиме.
Как мне выполнить правильную очистку после запуска нужной команды в сценарии bash?
Подробнее здесь: https://stackoverflow.com/questions/793 ... mmand-when