在不截断键/值对的情况下启动URL

时间:2018-01-18 12:48:40

标签: ruby

有谁知道如何在浏览器中打开多个键值对的完整网址?我正在自动打开一堆网址,并且在第一个键/值对之后启动时它们都会被截断。见下文:

我正在跑步:

system("open https://someradurl.awesaome.com/approvals?code=guid&context=anotherguid")

但在浏览器中打开的内容是:

https://someradurl.awesaome.com/approvals?code=guid

正如您所看到的,它会在启动时剥离上下文和任何其他附加键。

我知道我可以使用launchy gem来实现这一点,这样可行,但我正在寻找原生Ruby解决方案。我也想了解为什么系统(“开放”)不起作用。

非常感谢帮助。我已经在这上面唠叨了大约一个星期。

我正在运行Mac:ruby 2.4.1p111(2017-03-22修订版58053)[x86_64-darwin16]如果有帮助的话。

2 个答案:

答案 0 :(得分:5)

你想用你的双引号将你的URL包装在你的命令中,否则如你所见,以及&被剥夺了&是大多数shell中的操作符。由于命令是双引号中的字符串,因此您可以使用转义双引号\"在命令中使用双引号,即"\"a string within a string\""

尝试:

system("open \"https://someradurl.awesaome.com/approvals?code=guid&context=anotherguid\"")

希望有所帮助!

答案 1 :(得分:2)

TLDR - 链接应用单引号括起来

system("xdg-open 'https://someradurl.awesaome.com/approvals?code=guid&context=anotherguid'")

而不是open使用xdg-open

来自xdg-open

man page
EXAMPLES
           xdg-open 'http://www.freedesktop.org/'

       Opens the freedesktop.org website in the user's default browser.

           xdg-open /tmp/foobar.png

       Opens the PNG image file /tmp/foobar.png in the user's default image viewing
       application.

这不是特定于红宝石的问题。