我正在使用一个为 Windows 设计的程序,我自己为 GNU/linux 编译了该程序。该程序在命令行中运行,一个参数如下所示:
prgm -arg1 abcd(10)(22) -i files.ext
Run Code Online (Sandbox Code Playgroud)
其中(10)和是诸如、和之(22)类的标志。该命令失败,因为尝试解释内部内容并且存在语法错误。所以,我有两个问题:abcdbash()
Rin*_*ind 11
Bash 将它们解释为列表:
(列表)
list 在子 shell 环境中执行(请参阅下面的命令执行环境)。影响 shell 环境的变量分配和内置命令在命令完成后不再有效。返回状态是列表的退出状态。
什么符号是安全的?
Bash 使用大量字符并希望您转义符号。这是具有特殊含义的符号列表:
!#$%&'()*+,-./:;<=>?@[\]^_`{|}~
Run Code Online (Sandbox Code Playgroud)
你需要转义(,)如果这些是字符(添加\在前面)
因此,在您的情况下,以下内容将被解释为纯文本:
prgm -arg1 abcd\(10\)\(22\) -i files.ext
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用引号或双引号,如下所示:
prgm -arg1 "abcd(10)(22)" -i files.ext
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
816 次 |
| 最近记录: |