Длина чтения переданного значения?

Si desea obtener más información sobre el tiempo de construcción de emerge, puede usar app -portage/genlop . Genlop extrae información útil de los registros de emerge y puede hacer algunas estimaciones basadas en esta información.

Para ver el paquete actual que se está compilando:

~$ genlop -c

Currently merging 2 out of 19

* sys-kernel/linux-firmware-20180103-r1 

      current merge time: 8 seconds.
      ETA: 1 minute and 13 seconds.

Si desea conocer el tiempo estimado de una operación completa emerge:

~ $ emerge -p app-office/libreoffice www-client/firefox | genlop -pq
These are the pretended packages: (this may take a while; wait...)

[ebuild   R   ~] www-client/firefox-60.0.1::gentoo  USE="[...]" 0 KiB
[ebuild   R    ] app-office/libreoffice-6.0.3.2::gentoo  USE="[...]" 0 KiB


Estimated update time: 2 hours, 27 minutes.

degenlop -h:

-p  estimate build time from a piped "emerge -p" output
-q  query gentoo.linuxhowtos.org database if no local emerge was found

Tenga en cuenta que al usar la opción -q, el tiempo de compilación real puede ser bastante lento. Esto se debe a que depende de la información del usuario enviada a la base de datos gentoo.linuxhowtos.org . Esto no debería importar cuando ya apareció una versión anterior del paquete en el sistema, ya que estará en los registros.

1
07.07.2017, 16:07
2 ответа

Как @steve написал , просто используйте wc -cдля подсчета количества байтов. См. man wcдля других опций.

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

3
27.01.2020, 23:18

Допустим, вы хотите запустить команду, если длина аргумента меньше 2:

seq 100 | parallel echo '{= length($_) >= 2 and skip =}'

Он также будет запускать задания параллельно -по одному на каждом ядре.

NB :GNU Parallel не является параллелью в moreutils.

GNU Parallel — это универсальный распараллеливатель, который упрощает параллельное выполнение заданий на одном и том же компьютере или на нескольких компьютерах, к которым у вас есть доступ по ssh.

Если у вас есть 32 разных задания, которые вы хотите запустить на 4 ЦП, прямой способ распараллеливания — запустить 8 заданий на каждом ЦП:

Simple scheduling

GNU Parallel вместо этого порождает новый процесс, когда он завершается -, сохраняя активность ЦП и, таким образом, экономя время:

GNU Parallel scheduling

Установка

Из соображений безопасности вам следует установить GNU Parallel с помощью вашего менеджера пакетов, но если GNU Parallel не упакован для вашего дистрибутива, вы можете выполнить персональную установку, которая не требует root-доступа. Это можно сделать за 10 секунд, сделав это:

(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash

Другие варианты установки см. в http://git.savannah.gnu.org/cgit/parallel.git/tree/README

.

Узнать больше

Посмотреть другие примеры:http://www.gnu.org/software/parallel/man.html

Посмотрите вступительные видеоролики:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

Прохождение обучения:http://www.gnu.org/software/parallel/parallel_tutorial.html

Подпишитесь на список рассылки, чтобы получить поддержку:https://lists.gnu.org/mailman/listinfo/parallel

1
27.01.2020, 23:18

Теги

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