1

当我在终端上运行“/usr/bin/w”时,我看到了很长的行,例如

user    pts/0    :0.0             08Jan13  2:48m  6.02s 12:36  gnome-terminal --maximize

但是,当我重定向到文件或管道时,例如“/usr/bin/w | cat”,这些行被截断为 80 的长度

user    pts/0    :0.0             08Jan13  2:53m  6.02s 12:36  gnome-termi

即使重定向到管道,是否有可能获得长线?

4

1 回答 1

2

是时候调用 FOSS 超级英雄的力量了!

检查w.c学习的源代码:

if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &win) != -1 && win.ws_col > 0)
    maxcmd = win.ws_col;
else if ((p = getenv("COLUMNS")))
    maxcmd = atoi(p);
else
    maxcmd = 80;
if (maxcmd < 71)
    xerrx(EXIT_FAILURE, _("%d column window is too narrow"), maxcmd);

maxcmd -= 21 + userlen + (from ? fromlen : 0) + (longform ? 20 : 0);
if (maxcmd < 3)
    xwarnx(_("warning: screen width %d suboptimal"), win.ws_col);

所以

export COLUMNS=300

应该足够了,或者

COLUMNS=300 /usr/bin/w | cat

去测试 :)

于 2013-03-22T12:36:07.867 回答