确定终端中的行数

Red*_*age 2 bash d

我想写一个简短的程序,用磅符号填充屏幕.这就是我所拥有的

import std.stdio;
import std.process;
import std.conv;

void main(string[] args){
  auto lines =  environment.get("LINES");
  int line_count = to!int(lines); 
  for(int a = 1; a <= line_count; a++){
    writeln("######################################################################");
  }
}
Run Code Online (Sandbox Code Playgroud)

我希望这可以工作,因为当我从终端执行"echo $ LINES"时它打印"47".但是,当我在同一个会话中通过rdmd运行程序时,LINES显示为空.这是在Ubuntu Raring上.有任何想法吗?

Kei*_*son 5

如果你可以获取命令的输出stty size,那可能比检查$LINES$COLUMNS环境变量更可靠.

或者您可以TIOCGWINSZ按照此答案中的说明调用ioctl .