Macで動くRubyスクリプトを書いていて、処理結果を直接クリップボードに格納したいケースがあった。(Rubyの処理結果をコピペしたかった)
macOSでは、pbcopy
と呼ばれるクリップボード保存用システムコマンドが用意されていて、
$ echo 'piyo' | pbcopy
のように文字列をパイプでpbcopyに渡すことで、クリップボードに文字列を格納することができる。
一方Rubyスクリプトでは、バックスラッシュで囲まれたコードをシステムコマンドとして実行できる:
str = 'piyopiyo'
`echo #{p str}`
=> "piyopiyo\n"
これらをまとめると、Mac上のRubyコードからクリップボードを使うことができる:
str = 'piyopiyo'
`echo #{p str} | pbcopy` # クリップボードにstrが入る