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

the*_*ame 1 ruby

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

我在跑:

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]如果有帮助的话.

小智 5

您希望用双引号将URL包装在命令中,否则如您所见,在&被剥离后的任何内容都是&作为大多数shell中的运算符字符.由于命令是双引号中的字符串,因此您可以使用转义双引号在命令中使用双引号\",即"\"a string within a string\"".

尝试:

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

希望有所帮助!

  • 用单引号包装URL甚至更好,因为它们保证shell不会尝试解释它们之间的任何内容. (2认同)