компилировать nginx и naxsi на ubuntu 18.x

Команды обычно не буферизуют свой ввод. Они будут выполнять read () для большого фрагмента, но при чтении из канала, если в канале не так много байтов, системный вызов read () будет вернитесь с таким количеством символов, которое есть, и приложение, как правило, будет работать с этим, если может.

Заметным исключением из этого правила является mawk , который будет повторять read () , пока входной буфер не заполнится.

Приложения все же буферизуют свой вывод (стандартный вывод). Обычное поведение состоит в том, что если вывод идет на tty, то буферизация будет линейной (то есть, она не начнет писать на stdout, пока у него не будет полной строки для вывода, или пока не будет заполнен блок для очень длинная строка), в то время как для любого другого типа файла буферизация выполняется по блокам (то есть он не начнет запись, пока не будет заполнен один блок для записи (что-то вроде 4 КБ / 8 КБ ... зависит от программного обеспечения и системы )).

Итак, в вашем случае LongRunningCommand , вероятно, буферизует свой вывод по блокам (поскольку его вывод является конвейером, а не tty), а tr , вероятно, буферизует свой вывод построчно, так как его вывод наверное терминал.

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

Итак, здесь вы хотите отключить буферизацию для LongRunningCommand и tr . В системах GNU или FreeBSD:

stdbuf -o0 LongRunningCommand | stdbuf -o0 tr '\n' ,

Обратите внимание, что если вы хотите соединить строки запятой, лучше использовать paste -sd, - .Таким образом, вывод будет завершен символом новой строки (вам, вероятно, все равно придется отключить буферизацию).

0
01.06.2018, 10:44
1 ответ

Sus opciones al compilar se interpretan como comandos, por lo que dice command not found. Lo más probable es que no esté escapando de una nueva línea, por lo que el shell cree que la opción en la siguiente línea es un comando para ejecutar.

Esta nueva línea en su ejemplo no se escapa correctamente:

./configure --conf-path=/etc/nginx/nginx.conf \
--add-module=../naxsi-${latestNaxsi}/naxsi_src/ \

--with-cc-opt='-g -O2 -fdebug-prefix-map=/b
2
28.01.2020, 02:31

Теги

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