Linux 监视和 terminfo

Linux 监视和 terminfo

我用来watch定期运行一个 perl 脚本,需要Term::Size使用以下命令获取终端宽度

$columns = Term::Size::chars *STDOUT{IO}

奇怪的是,$columns在这种情况下是一个空字符串。是否watch以某种方式操纵STDOUTterminfo 数据库?

答案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

相关内容