反斜杠被删除,除非在命令行标志中引用
Backslashes are removed unless quoted in command line flags
我正在使用标志包来解释在命令行输入的标志。
我使用
创建了一个变量
ptrString := flag.String("string", "", "A test string")
flat.Parse()
然后我要打印的时候,
fmt.Println("You entered " + *ptrString)
如果我输入类似 -string=hello!作为命令行参数,它打印 "hello!"
如果我输入类似 -string=hello\Bob 的命令行参数,它会打印 "helloBob"
是否有推荐的方法将标志参数转换或解释为不删除反斜杠的字符串? (这正在 Linux 和 OS X 上进行测试,如果 shell 正在干扰...)
shell中有特殊含义的字符需要加引号或转义。您可以在 shell 的手册页中找到完整列表(在 man 1 bash
中的 "Quoting" 下)。
在这种情况下,您可以引用或转义 baskslash
-string=hello\Bob
// or
-string='hello\Bob'
我正在使用标志包来解释在命令行输入的标志。
我使用
创建了一个变量ptrString := flag.String("string", "", "A test string")
flat.Parse()
然后我要打印的时候,
fmt.Println("You entered " + *ptrString)
如果我输入类似 -string=hello!作为命令行参数,它打印 "hello!"
如果我输入类似 -string=hello\Bob 的命令行参数,它会打印 "helloBob"
是否有推荐的方法将标志参数转换或解释为不删除反斜杠的字符串? (这正在 Linux 和 OS X 上进行测试,如果 shell 正在干扰...)
shell中有特殊含义的字符需要加引号或转义。您可以在 shell 的手册页中找到完整列表(在 man 1 bash
中的 "Quoting" 下)。
在这种情况下,您可以引用或转义 baskslash
-string=hello\Bob
// or
-string='hello\Bob'