除非在命令行标志中引用,否则将删除反斜杠

时间:2015-07-28 19:00:19

标签: string go command-line-arguments

我正在使用标志包来解释在命令行输入的标志。

我使用

创建了一个变量
ptrString := flag.String("string", "", "A test string")
flat.Parse()

然后当我想打印时,

fmt.Println("You entered " + *ptrString)

如果我输入类似-string = hello的内容!作为命令行参数,它打印“hello!”

如果我输入-string = hello \ Bob之类的命令行参数,则打印“helloBob”

是否有建议的方法将flag参数转换或解释为不删除反斜杠的字符串? (这是在Linux和OS X上测试的,如果shell正在干扰...)

1 个答案:

答案 0 :(得分:2)

需要引用或转义在shell中具有特殊含义的字符。您可以在shell的手册页中找到完整列表(在man 1 bash中的“Quoting”下)。

在这种情况下,您可以引用或转义baskslash

-string=hello\\Bob
// or
-string='hello\Bob'