Почему «Slabtop -o» возвращает только первые 23 строки, когда команда передается по конвейеру?

Если у вас правильно настроен gpg-agent , используя pinentry-tty или другую версию это не загрязняет stdin / stdout, тогда вы сможете сделать что-то вроде:

source <( gpg --decrypt file.gpg )

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

3
03.06.2018, 01:51
2 ответа

slabtop, incluso con -o, siempre se limita a una sola pantalla de salida . Normalmente lo hace preguntando al terminal cuál es su tamaño, pero cuando su salida estándar no es un terminal, asume que la pantalla tiene 80 columnas por 24 filas y solo genera 23 filas (para evitar cualquier desplazamiento ).

Este desde entonces ha sido arreglado , y la corrección está presente en procps-ng3.3.13 y posteriores.

2
27.01.2020, 21:21

Es difícil -codificar para que funcione de esta manera cuando la salida no es una terminal.

si aún desea usar la redirección y obtener más filas, puede usar scriptpara engañar a slabtoppara que piense que su salida se está imprimiendo en la terminal. Puede agregar sttyademás de eso para cambiar los parámetros del terminal pseudo -y establecer su propio límite para las líneas de salida.

# slabtop -o | wc -l
23
# script -q -c "slabtop -o" /dev/null | wc -l
46
# script -q -c "stty rows 999; slabtop -o" /dev/null | wc -l
147

Alternativamente, puede obtener su información directamente del archivo /proc/slabinfo, que también es utilizado por slabtop.

2
27.01.2020, 21:21

Теги

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