I'm trying to pass the array contained in a global variable I've created into my clipboard on my mac.
It is very long so I don't want to highlight, copy & paste on my console.
I want to use embedded unix code, specificially the pbcopy
function for the mac laptop console that allows me to pass text into my computers clipboard, ready to paste.
Were I to do this with a file-save, I'd do something like this (in ruby):
stringdata = “kflxkhdoudopudpdpudpudpyddoyod”
File.open("temp.txt"){|f| f.write(stringdata)}
`cat temp.txt | pbcopy`
But could I possibly do this without creating a temporary file?
I'm sure this is possible. All things in text are possible. Thanks in advance for the solution
You can just echo it instead if there are no newline characters in the string; otherwise, use the
IO
class.Using
echo
:OR
Ruby will then just rip the text from memory, inject it into the shell command which opens a pipe between the
echo
andpbcopy
processes.Using the
IO
class:If you want to do it the Ruby way, we simply create a pipe with
pbcopy
using the IO class. This creates a shared files between the processes which we write to, andpbcopy
will read from.IO.popen("pbcopy", "w") { |pipe| pipe.puts "Hello world!" }