如何执行在捕获输出时以彩色打印但在Ruby中也可以取消的系统命令?

ldanielw1

Ruby有很多方法来运行系统命令,无论是system()还是exec()或反引号等。

但是,我发现只有system和exec(据我所知)能够打印某些命令的彩色输出,同时还提供允许我取消命令的PID。

还有其他方法可以从Ruby命令行脚本运行系统命令,从而使我能够满足以下要求?

  1. 查看彩色输出(帮助组织)
  2. 将输出捕获到变量
  3. 获取一个PID,以便在需要时可以取消执行(我已经有了此代码,我只需要PID)
ldanielw1

弄乱了一段时间之后,我发现IO.popen返回了一个包含pid的对象,还可以用于打印所有捕获的输出。它也不会干扰从Ruby中调用的系统命令的ANSI输出。我的代码现在看起来像这样:

#!/usr/bin/ruby

def shutdown()
    `kill #{$pid}`
end

["INT", "KILL", "TERM"].each { |_sig| Signal.trap(_sig) { shutdown() }     }

process = IO.popen("ls --color ~; ping -c 10 www.google.com")
$pid = process.pid
process.each { |_line| puts _line }

因此,我可以取消ls和ping命令,而无需从终端使用Control-C取消我的Ruby代码,并且如果需要的话,还可以在打印行之前对其进行操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

执行后台系统命令并使用PHP捕获数组中的输出

来自分类Dev

执行外部命令时如何在Perl中捕获大型STDOUT输出

来自分类常见问题

如何在Rust中调用系统命令并捕获其输出?

来自分类Dev

如何调用系统命令并捕获其输出?

来自分类Dev

在Perl中动态捕获系统命令的输出

来自分类Dev

Gtest:捕获输出,但在失败时将其打印

来自分类Dev

Gtest:捕获输出,但在失败时将其打印

来自分类Dev

捕获输出时如何在Crystal中执行Shell脚本?

来自分类Dev

在Ruby中执行进程时如何保留输出颜色?

来自分类Dev

在R中的函数中捕获系统命令的输出

来自分类Dev

在R中的函数中捕获系统命令的输出

来自分类Dev

如何启用包装在脚本中的shell命令的彩色输出?

来自分类Dev

存储在变量中时打印命令输出

来自分类Dev

在 awk 中执行 bash 命令并打印命令输出

来自分类Dev

Ruby:打印系统实时输出?

来自分类Dev

Ruby:捕获system()的输出并在终端中打印

来自分类Dev

Ruby从bash脚本执行中捕获stderr输出

来自分类Dev

使用管道和撇号时,如何将bash命令的输出捕获到变量中?

来自分类Dev

在变量中捕获命令输出时如何保留换行符(\ n)

来自分类Dev

我可以在终端中执行在文本文档中编写的命令吗

来自分类Dev

在变量中获取彩色的命令输出

来自分类Dev

在Windows Batch for Loop中运行可执行文件时,如何打印输出?

来自分类Dev

有条件时如何在Ansible中打印命令输出?

来自分类Dev

如何在Scala actor中执行(执行)外部系统命令?

来自分类Dev

如何从命令行在法语Windows系统上激活文件和打印机共享?

来自分类Dev

如何从命令行在Windows中打印多种文件类型?

来自分类Dev

在scala中执行awk系统命令时使用scala变量

来自分类Dev

AMPL:当命令文件中不能包含数据和模型命令时,如何使用NEOS Server打印变量输出?

来自分类Dev

AMPL:当命令文件中不能包含数据和模型命令时,如何使用NEOS Server打印变量输出?

Related 相关文章

  1. 1

    执行后台系统命令并使用PHP捕获数组中的输出

  2. 2

    执行外部命令时如何在Perl中捕获大型STDOUT输出

  3. 3

    如何在Rust中调用系统命令并捕获其输出?

  4. 4

    如何调用系统命令并捕获其输出?

  5. 5

    在Perl中动态捕获系统命令的输出

  6. 6

    Gtest:捕获输出,但在失败时将其打印

  7. 7

    Gtest:捕获输出,但在失败时将其打印

  8. 8

    捕获输出时如何在Crystal中执行Shell脚本?

  9. 9

    在Ruby中执行进程时如何保留输出颜色?

  10. 10

    在R中的函数中捕获系统命令的输出

  11. 11

    在R中的函数中捕获系统命令的输出

  12. 12

    如何启用包装在脚本中的shell命令的彩色输出?

  13. 13

    存储在变量中时打印命令输出

  14. 14

    在 awk 中执行 bash 命令并打印命令输出

  15. 15

    Ruby:打印系统实时输出?

  16. 16

    Ruby:捕获system()的输出并在终端中打印

  17. 17

    Ruby从bash脚本执行中捕获stderr输出

  18. 18

    使用管道和撇号时,如何将bash命令的输出捕获到变量中?

  19. 19

    在变量中捕获命令输出时如何保留换行符(\ n)

  20. 20

    我可以在终端中执行在文本文档中编写的命令吗

  21. 21

    在变量中获取彩色的命令输出

  22. 22

    在Windows Batch for Loop中运行可执行文件时,如何打印输出?

  23. 23

    有条件时如何在Ansible中打印命令输出?

  24. 24

    如何在Scala actor中执行(执行)外部系统命令?

  25. 25

    如何从命令行在法语Windows系统上激活文件和打印机共享?

  26. 26

    如何从命令行在Windows中打印多种文件类型?

  27. 27

    在scala中执行awk系统命令时使用scala变量

  28. 28

    AMPL:当命令文件中不能包含数据和模型命令时,如何使用NEOS Server打印变量输出?

  29. 29

    AMPL:当命令文件中不能包含数据和模型命令时,如何使用NEOS Server打印变量输出?

热门标签

归档