Folder Permissions Issue

Вы получили неполный вывод строк как часть той же строки в том месте, где была напечатана новая строка. Части строки буферизуются внутри read, , вот что она делает:

Утилита read должна считывать одну логическую строку со стандартного ввода

. ] Например, это выводит через одну секунду, а не .

(echo -n foo ; sleep 1 ; echo bar) | (read x ; echo "<$x>")

Если вы хотите перехватывать ввод меньшими частями, чем полные строки, вам нужно сделать что-то еще, например. с Перл. Это напечатает (с новой строкой перед последней >, так как в отличие от read, Perl не обрабатывает последнюю новую строку особенно. Не должно иметь значения с окраской.)

(echo -n foo ; sleep 1 ; echo bar) | 
    perl -e '$|=1; while(sysread STDIN,$a,9999) { print "<$a>"}'

Если у вас есть управляющие коды для цветов (RED и COLORRESET), экспортированные в среду, вы можете использовать их из Perl сценарий как здесь:

perl -e '$|=1; while(sysread STDIN,$a,9999) {print "$ENV{RED}$a$ENV{COLORRESET}"}'

1
19.04.2019, 01:23
0 ответов

Теги

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