我希望您能从Ruby运行以下shell命令,将字符串复制到剪贴板(在OS X上),'n'可以抑制由
什么是实现这个的正确方式?
echo
引起的字符串后面的换行符:echo -n foobar | pbcopy
—>工作正常,现在剪贴板包含“foobar”
我尝试了以下方法,但它们所有的方法都会将选项“-n”一起复制到剪贴板中:
%x[echo -n 'foobar' | pbcopy]
%x[echo -n foobar | pbcopy]
system "echo -n 'foobar' | pbcopy"
system "echo -n foobar | pbcopy"
exec 'echo -n "foobar" | pbcopy'
`echo -n "foobar" | pbcopy`
IO.popen "echo -n 'foobar' | pbcopy"
什么是实现这个的正确方式?
popen
方法打开pbcopy
并通过stdin发送密码可能更可靠,因为你不必担心引号。 Tin Man有一个使用stdin和Open3.popen3()
的示例。 - mu is too short%x[/bin/echo -n foobar | pbcopy]
”不是更简单吗?(顺便说一句,“%x[echo -n foobar | pbcopy]
”对我来说似乎也可以。) - matt%x[...]
这个方法很好用,而且简单明了。但问题在于,“foobar”可能实际上是“ha'ha$PATH”或其他一些混乱的字符(毕竟这是一个密码),所以你必须确保所有内容都被正确转义。直接打开到pbcopy
的管道可以避免这个问题。 - mu is too short