如何将文本数据从Ruby控制台传递到剪贴板而不保存到文件? [英] How might I pass text data from the ruby console into my clipboard without saving to a file?
本文介绍了如何将文本数据从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然后只需从内存中取出文本,将其注入到外壳命令中,该命令将打开echo
和pbcopy
进程之间的管道。
使用IO
类:
如果您想以Ruby的方式完成,我们只需使用IO类通过pbcopy
创建一个管道。这将在我们写入的进程和pbcopy
将从中读取的进程之间创建共享文件。
IO.popen("pbcopy", "w") { |pipe| pipe.puts "Hello world!" }
这篇关于如何将文本数据从Ruby控制台传递到剪贴板而不保存到文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文