如果我們嘗試從Go打開給定的URL,則非常簡單,如下面的代碼所示(對(duì)于mac):exec.Command("open", "https://google.com").Run()但是,如果URL具有參數(shù),我們?nèi)绾巫鐾瑯拥氖虑槟兀坷?,如果我們嘗試打開一個(gè)Facebook登錄網(wǎng)址:“https://www.facebook.com/v11.0/dialog/oauth?client_id=123456&redirect_uri=https://example/com”,則該命令失敗,退出狀態(tài)為1。即使我們?yōu)樘厥庾址??、& & 和 = 包含反斜杠也是如此。網(wǎng)址將更改為 。https://www.facebook.com/v11.0/dialog/oauth\?client_id\=123456\&redirect_uri\=https://example/com如果我們使用,上面的URL將在默認(rèn)瀏覽器中打開open https://www.facebook.com/v11.0/dialog/oauth\?client_id\=123456\&redirect_uri\=https://example/com終端中的命令。但是當(dāng)從Go這樣做時(shí),它會(huì)失?。∮袥]有辦法從Go做同樣的事情?是的,可以使用 來完成。但這不會(huì)打開默認(rèn)瀏覽器,這是用戶最有可能登錄的位置。exec.Command("open", "-a", "safari", url)
2 回答

有只小跳蛙
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
它實(shí)際上在沒有反斜杠的情況下工作。事實(shí)證明,終端中需要反斜杠,因?yàn)榻K端在將字符串發(fā)送到瀏覽器之前在內(nèi)部轉(zhuǎn)義反斜杠。但是,如果發(fā)生 go,它只是將原始字符串發(fā)送到瀏覽器。
在 Go 中使用:
exec.Command("open", "https://www.facebook.com/v11.0/dialog/oauth?client_id=123456&redirect_uri=https://example/com")
從終端命令行:
open https://www.facebook.com/v11.0/dialog/oauth\?client_id\=123456\&redirect_uri\=https://example/com

MMTTMM
TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
嘗試追加反斜杠(\)
exec.Command("open", "https://www.facebook.com/v11.0/dialog/oauth\\?client_id/\\=123456/\\&redirect_uri/\\=https://example/com").Run()
- 2 回答
- 0 關(guān)注
- 300 瀏覽
添加回答
舉報(bào)
0/150
提交
取消