Perl 스크립트를 주기적으로 실행하는 데 사용하며 다음 명령을 사용하여 터미널 너비를 가져와야 watch
합니다.Term::Size
$columns = Term::Size::chars *STDOUT{IO}
이상한 점은 $columns
이 경우 빈 문자열이라는 것입니다. terminfo 데이터베이스가 watch
어떤 방식으로 조작되고 있습니까 STDOUT
?
답변1
불행히도, watch
보시다시피 파이프를 사용하여 하위 프로세스의 출력을 수집합니다.watch 'ls -l /proc/self/fd'
Every 2.0s: ls -l /proc/self/fd ...
lrwx------ 1 64 Aug 7 16:28 0 -> /dev/pts/6
l-wx------ 1 64 Aug 7 16:28 1 -> pipe:[42416612]
l-wx------ 1 64 Aug 7 16:28 2 -> pipe:[42416612]
lr-x------ 1 64 Aug 7 16:28 3 -> /proc/3509/fd