如何将文本数据从Ruby控制台传递到剪贴板而不保存到文件? [英] How might I pass text data from the ruby console into my clipboard without saving to a file?

查看:18
本文介绍了如何将文本数据从Ruby控制台传递到剪贴板而不保存到文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将我创建的全局变量中包含的数组传递到Mac上的剪贴板中。

它很长,所以我不想在我的控制台上突出显示、复制和粘贴。

我想使用嵌入式Unix代码,特别是Mac笔记本电脑控制台的pbcopy函数,它允许我将文本传递到我的计算机剪贴板中,准备粘贴。

如果我要保存文件,我会这样做(用Ruby):

stringdata = <<blah blah blah process, lets say it failed and the progress data is stored in this variable so we can skip forward to where the script screwed up in a process when we start up and handle the error instance(s)>>
File.open("temp.txt"){|f| f.write(stringdata)}
`cat temp.txt | pbcopy`

但我可以在不创建临时文件的情况下执行此操作吗?

我相信这是可能的。文本中的一切都是可能的。预先感谢您的解决方案

推荐答案

如果字符串中没有换行符,则可以只回显它;否则,请使用IO类。

使用echo

system "echo #{stringdata} | pbcopy"

`echo #{stringdata} | pbcopy`

Ruby然后只需从内存中取出文本,将其注入到外壳命令中,该命令将打开echopbcopy进程之间的管道。

使用IO类:

如果您想以Ruby的方式完成,我们只需使用IO类通过pbcopy创建一个管道。这将在我们写入的进程和pbcopy将从中读取的进程之间创建共享文件。

IO.popen("pbcopy", "w") { |pipe| pipe.puts "Hello world!" }

这篇关于如何将文本数据从Ruby控制台传递到剪贴板而不保存到文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆