我正在尝试使用 rc shell(来自 Plan9 OS 的 Linux 端口),并在使用带有以下参数的程序时收到“语法错误”消息参数=值。
; dd if=/dev/zero of=/dev/null
syntax error
; ls --color=auto
syntax error
我的猜测是 rc shell 看到=符号并将该语句视为变量赋值,而不是程序运行。 Plan9 中可能没有 dd 程序或其他程序使用此类参数。但如何在广泛使用的 Linux 中使用它呢?
我尝试着逃避=就像dd if\=... of\=
,这没有帮助。
我尝试引用类似的论点dd 'if=/dev/zero' 'of=/dev/null' 'bs=1M' 'count=1'
并且它有效。但不是很舒服。还有其他更方便的方法吗?
我使用的是 Ubuntu 11.10 存储库中的 rc shell:软件包版本 1.7.1-3ubuntu1。
答案1
根据man rc
:
以下字符是特殊字符:#; & | ^ $ = ` ' { } ( ) < > 单引号 (') 防止对除自身以外的任何字符进行特殊处理。
=
您需要转义的特殊字符也是如此。
如果您不喜欢语法:
ls '--color=auto'
您可以=
通过以下方式仅转义字符:
ls --color'='auto
但我认为这并没有更好。