1 votos

Terminal de redirección no funciona en MacOS Mojave?

Sistema: MacBook Pro (principios de 2013), la ejecución de up-to-fecha de Mojave.

Para analizar la utilización de la CPU cuando se ejecuta una aplicación que estoy haciendo lo mismo, me he hecho una y otra vez en un sistema Linux; ejecutando el siguiente comando en la terminal:

top | grep idle

Esto funciona como debería, la salida por pantalla es:

MacBook:Desktop Peregrino69$ top | grep idle
CPU usage: 13.14% user, 15.97% sys, 70.87% idle
CPU usage: 10.94% user, 8.53% sys, 80.52% idle
CPU usage: 10.95% user, 6.94% sys, 82.9% idle

Sin embargo, si he de hacer

top | grep idle | tee ./utilization.txt

... inesperadamente no hay salida de la terminal, y el archivo resultante es vacío. Este error he intentado

top | grep idle >> ./utilization.txt

... con el mismo resultado.

Pruebas de redirección con un simple comando echo echo hello | tee foo funciona como se espera; la palabra "hola" salidas tanto en la pantalla como en foo.

¿Qué está pasando?

3voto

klanomath Puntos 19587

Si se redirige STDOUT a un no-terminal (por ejemplo, un archivo) de un tamaño de búfer predeterminado de 4096 Bytes se utiliza. En la Terminal de salida estándar (STDOUT) por defecto de la línea de almacenamiento en búfer.

Ejecutando el comando top | grep idle | tee >> ... va a llenar el 4k búfer con ~45-50 Byte/s (dependiendo de la carga y sys|usr|inactivo split). Después de un tiempo el primer buffer se escriben en el archivo. Aquí tuvo ~85 segundos para escribir el primer tampón para el sistema de archivos.


Así que ser paciente

2voto

Michael Zhou Puntos 167

Usted necesita para producir una muestra de la parte superior de la salida.

top -l1 | grep idle | tee ./utilization.txt

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X