Как прочитать строковый аргумент, включая & в Go, например, эту ссылку
$ ./main https://www.youtube.com/watch?v=G3PvTWRIhZA&list=PLQVvvaa0QuDeF3hP0wQoSxpkqgRcgxMqX
без использования двойных кавычек (")
$ ./main "https://www.youtube.com/watch?v=G3PvTWRIhZA&list=PLQVvvaa0QuDeF3hP0wQoSxpkqgRcgxMqX"
main.go
package main import ( "os" "fmt" ) func main() { link := os.Args[1] fmt.Println(link) }
$ go build main.go $ ./main https://www.youtube.com/watch?v=G3PvTWRIhZA&list=PLQVvvaa0QuDeF3hP0wQoSxpkqgRcgxMqX
$ go build main.go
вывод будет
https://www.youtube.com/watch?v=G3PvTWRIhZA
И @JimB, и @Adrian верны, необходимо экранировать &.
&
Если вам абсолютно необходимо найти обходной путь, вы можете отказаться от использования аргумента командной строки и вместо чтения вводавместо этого нужно обойти необходимость в побеге.
Пример:
package main import ( "fmt" ) func main() { var input string fmt.Scan(&input) fmt.Println(input) }
Ввод:
выход:
https://www.youtube.com/watch?v=G3PvTWRIhZA&list=PLQVvvaa0QuDeF3hP0wQoSxpkqgRcgxMqX