如何确保我的Ruby命令行程序将清除屏幕,而不pipe它是在Windows,MacOSX还是基于Linux的发行版上?
如果我在Windows上,命令是这样的:
system('cls')
而在Mac上的Linux将是这样的:
system('clear')
如何通过Windows命令行确定ALBD服务是否正在运行?
清除Java的控制台
使用Eclipse和远程系统资源pipe理器构build
如何使用批处理脚本更改clearcase_albd帐户域名和密码?
Clearcase – 查看何时创build视图
如何使用PowerShell脚本更改Windows服务帐户的域名和密码?
Nginx的反向代理caching失效策略
`cleartool lsco -r -cvi -me`与'cleartool lsco -graphical`相比非常慢。 有没有可能改善它的performance?
Powershell清除主机替代保存缓冲区
如何自动创buildClearCase视图?
def clear_screen puts "Going to clear the screen" if RUBY_PLATFORM =~ /win32|win64|.NET|windows|cygwin|mingw32/i system('cls') else system('clear') end end
值得注意的是,清除程序中的屏幕可能是你想要的行为,但是如果不是对那些习惯于更多UNIX风格环境的人的彻头彻尾的愤怒,那么这是一种令人烦恼的事情:杀死它们的回滚历史是非常粗鲁的。
更多的Ruby和POSIX的处理方式是通过Curses ( 文档 ),一个跨平台的库,让你很多的控制如何使用屏幕打印的东西,伟大的建设终端式的交互式应用程序。
你最终会得到这样的结果:
#!/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
Curses不仅仅是一个“清屏”工具,你可以添加滚动,多窗口,各种各样的东西,当你退出程序时,如果close_screen它将恢复到与以前完全相同的状态。 这就是为什么它在一个ensure块,以避免如果你的程序崩溃搞砸了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。