ターミナル(Bash)のウィンドウサイズが知りたい - Ruby
irbからだとENV['LINES']に行数、ENV['COLUMNS']に列数が入ってるんだけど、普通にrubyから実行するとnilになってる。
んで、何となくReadline.readline()したらENVにLINESとCOLUMNSが追加されてた。
何がしたいかっていうと、この画像の点線部分があるじゃん。
こんな風にウィンドウサイズぴったりに文字を出力するためにターミナルの横幅が知りたいわけなのですよ。
横幅っていうか正確には文字数なんだけども。
ソース
require 'readline' def getEnv() lines = ENV['LINES'] columns = ENV['COLUMNS'] return lines, columns end def checkEnv() lines, columns = getEnv() print "ENV['LINES'] => ", lines puts print "ENV['COLUMNS'] => ", columns puts end def putLine() lines, columns = getEnv() columns.to_i.times do |t| print '-' end puts end checkEnv() puts Readline.readline('Readline>') checkEnv() putLine() checkEnv()