캐시 크기의 합계를 계산하기 위해 awk로 출력을 구문 분석하려고 하는데 slabtop -o
출력이 파이프되면 처음 23줄만 반환됩니다. 우분투와 센토스에서 이것을 시도했습니다.
# slabtop --version
slabtop from procps-ng 3.3.10
# slabtop -o | wc -l
23
명령이 파이프될 때 처음 23줄만 반환하는 이유는 무엇입니까?
답변1
slabtop
, 일지라도 -o
,항상 하나의 출력 화면으로 제한하십시오.. 일반적으로 터미널에 크기가 무엇인지 물어봄으로써 이를 수행하지만 표준 출력이 터미널이 아닌 경우화면이 80열 x 24행이라고 가정합니다.그리고 스크롤을 피하기 위해 23줄만 출력합니다.
이것고쳐졌으니까, 수정 사항은 procps-ng
3.3.13 이상에 나타납니다.
답변2
출력이 터미널이 아닐 때 이런 방식으로 작동하도록 하드코딩된 것뿐입니다.
여전히 리디렉션을 사용하고 더 많은 행을 얻으려면 출력이 터미널에 인쇄되고 있다고 생각하도록 script
속이는 데 사용할 수 있습니다 . 의사 터미널 매개변수를 변경하고 자체 출력 라인 제한을 설정하여 여기에 추가 slabtop
할 수 있습니다 .stty
# 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
또는 /proc/slabinfo
파일 slabtop
자체에서 직접 정보를 가져올 수도 있습니다.