如何在rc shell(从Plan9操作系统移植的Linux版本)中运行带有“arg=val”(例如dd)等参数的程序?

如何在rc shell(从Plan9操作系统移植的Linux版本)中运行带有“arg=val”(例如dd)等参数的程序?

我正在尝试使用 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

但我认为这并没有更好。

相关内容