如何在rc shell(从Plan9 OS移植的Linux版本)中运行带有'arg = val'(例如dd)之类的参数的程序?

wob*_*ene 6 shell plan9

我正在尝试使用 rc shell(来自 Plan9 OS 的 Linux 端口)并在使用带有arg=val 之类的参数的程序时收到“语法错误”消息。

; dd if=/dev/zero of=/dev/null
syntax error
; ls --color=auto
syntax error
Run Code Online (Sandbox Code Playgroud)

我的猜测是 rc shell 看到=符号并将该语句视为变量赋值,而不是程序运行。可能在 Plan9 中没有使用这种类型参数的 dd 程序或其他程序。但是我如何在它们被广泛使用的 Linux 中使用它呢?

我尝试转义= like dd if\=... of\=,但没有帮助。

我尝试引用像这样的论点dd 'if=/dev/zero' 'of=/dev/null' 'bs=1M' 'count=1',它奏效了。但它不是很舒服。还有其他更方便的方法吗?

我正在使用来自 Ubuntu 11.10 存储库的 rc shell:包版本 1.7.1-3ubuntu1。

Mic*_*jer 7

根据man rc

以下字符是特殊字符:#; &| ^ $ = ` ' { } ( ) < > 单引号 (') 防止对除自身之外的任何字符进行特殊处理。

=你需要转义的特殊字符也是如此。

如果您不喜欢以下语法:

ls '--color=auto'
Run Code Online (Sandbox Code Playgroud)

您只能=通过以下方式转义字符:

ls --color'='auto
Run Code Online (Sandbox Code Playgroud)

但我不认为这更好。