如何确保我在Ruby中的命令行程序清除屏幕,无论它是在Windows,MacOSX还是基于Linux的发行版上?
如果我在Windows上,则命令为:
urldecode()
而在Mac上的Linux上,它将是:
system('cls')
答案 0 :(得分:1)
system('clear')
答案 1 :(得分:0)
值得记住的是,清除程序中的屏幕可能是您期望的行为,但如果对于习惯于更加UNIX风格的环境的人来说并不是彻头彻尾的激怒,那么这可能会令人恼火:杀死他们的回滚历史非常粗鲁。
更多Ruby和POSIX处理方式是通过Curses(Documentation),这是一个跨平台的库,可让您对如何使用屏幕进行打印进行大量控制,非常棒用于构建终端式交互式应用程序。
你最终得到这样的东西:
#!/usr/bin/env ruby
require 'rubygems'
gem 'curses'
require 'curses'
Curses.init_screen
begin
Curses.crmode
# Do your calculations here, and to print:
Curses.addstr("(program output)\n")
Curses.addstr("Press any key to continue...")
Curses.refresh
Curses.getch
ensure
Curses.close_screen
end
诅咒不仅仅是一个清晰的屏幕"工具,您可以添加滚动,多个窗口,各种各样的东西,当您退出程序时,如果调用close_screen
,它会将您的终端恢复到与以前完全相同的状态。这就是它在ensure
块中的原因,以避免在程序崩溃时搞砸了。