Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Ruby清除终端?_Ruby - Fatal编程技术网

如何用Ruby清除终端?

如何用Ruby清除终端?,ruby,Ruby,我想知道如何在Ruby中使用C中的system(“clear”)做什么。 我写了一个像这样的程序 puts "amit" system("clear") 我希望在执行此命令后清除控制台,但它不工作。您可以使用以下命令 创建一个ruby文件,比如说check.rb,如下所示 puts "amit" #system "clear" 并从控制台运行它 [Salil@localhost桌面]$check.rb o/p 现在修改check.rb 并从控制台运行它 puts "amit" system

我想知道如何在Ruby中使用C中的
system(“clear”)
做什么。 我写了一个像这样的程序

puts "amit"
system("clear")
我希望在执行此命令后清除控制台,但它不工作。

您可以使用以下命令 创建一个ruby文件,比如说check.rb,如下所示

puts "amit"
#system "clear"
并从控制台运行它 [Salil@localhost桌面]$check.rb

o/p

现在修改check.rb 并从控制台运行它

puts "amit"
system "clear"
o/p


稍加改动即可:

puts "Here's a very long string"
sleep 1
system ("cls")

标记。

如果您在Mac电脑上,可以使用“Command+K”清除终端窗口。

在ruby文件中尝试以下两种方法之一:

puts `clear`

Edit:(重读你的问题,我意识到这不是你想要的。我以为你指的是IRB。我将把它留在这里,而不是删除它,因为我觉得它可能是非常有用的信息)


归根结底,这取决于你所使用的系统


ctrl+l(如果您想要一种便携性很差的东西,可以尝试:

system "clear" || system "cls"

这将尝试
清除
cls

我使用的一种便携、压缩但通常视觉上令人满意的方法是我所说的“疯狂的putz put”:


以下是一种多平台的方法:

Gem.win_platform? ? (system "cls") : (system "clear")

如果您正在使用MAC OS,请使用:

system('clear')
对于windows用户:

只需在irb窗口中键入以下函数即可:

定义此功能:

def cls
  system('cls')
end

定义后,在需要时调用此函数。

这应该包括windows和OSX/Linux终端

def method_name
   puts "amit"
   if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i
      system('cls')
    else
      system('clear')
   end
end
method_name
在UNIX上工作:

system("clear")

如果你使用Pry,它非常简单
只需
.clear
您可以根据要打印的终端使用
系统(“clear”)
系统(“cls”)

  • 如果使用的是Windows命令提示符,请使用
    系统(“cls”)
  • 如果您使用的是Mac或Linux系统,只需使用系统(“清除”)
或者您可以使用一种更好的方法

count = 0

until count == 10
  system("cls") || system("clear")
  print count
  count += 1
  sleep 1
end
清除屏幕(Ruby 2.7+) 从Ruby 2.7开始,需要清除终端输出:

需要“io/控制台”
$stdout.clear_screen#或stdout.clear_screen

查看
$stdout
stdout

您运行的是什么操作系统?SCiTE不是一个编译器,它只是一个文本编辑器。这取决于某人屏幕缓冲区设置的大小,效率很低,但无论如何,您也可以执行50次{put”“}简而言之,请使用这里的第二个。为了清除屏幕而分叉一个进程的想法让我头疼。更多信息请参见此处:另外,请查看ncurses以获得更强大的控制。但是,现在您找到非ansi终端的机会几乎为零。请使用
|
而不是
(请参阅)。对于像我这样的复制/粘贴者,相应的命令将是
system(“cls”)| | system(“clear”)
。这可能会引发错误:
语法错误,意外的字符串文字,应为“do”或“{”或“('
system(“clear”)| system(“cls”)
修复了这一问题。
Gem.win_platform? ? (system "cls") : (system "clear")
system('clear')
def cls
  system('cls')
end
def method_name
   puts "amit"
   if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i
      system('cls')
    else
      system('clear')
   end
end
method_name
system("clear")
count = 0

until count == 10
  system("cls") || system("clear")
  print count
  count += 1
  sleep 1
end