我正在使用一个为 Windows 设计的程序,我自己为 GNU/linux 编译了该程序。该程序在命令行中运行,一个参数如下所示:
prgm -arg1 abcd(10)(22) -i files.ext
其中(10)
和是诸如、和之(22)
类的标志。该命令失败,因为尝试解释内部内容并且存在语法错误。所以,我有两个问题:a
b
c
d
bash
()
- 在这种情况下,bash 实际上试图用括号做什么?为什么会失败?
- 我可以更改源代码,例如当程序识别另一个符号时。例如,我可以使用花括号代替括号。什么符号是安全的?
Bash 将它们解释为列表:
Bash 使用大量字符并希望您转义符号。这是具有特殊含义的符号列表:
你需要转义
(
,)
如果这些是字符(添加\
在前面)因此,在您的情况下,以下内容将被解释为纯文本:
另一种方法是使用引号或双引号,如下所示:
避免引用问题的常见方法是简单地用空格分隔选项,如下所示:
在您的程序中,您将解析参数,直到遇到
-
.另一个常见的选项是使用逗号: