我正在尝试使用 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。
根据man rc
:
以下字符是特殊字符:#; &| ^ $ = ` ' { } ( ) < > 单引号 (') 防止对除自身之外的任何字符进行特殊处理。
=
你需要转义的特殊字符也是如此。
如果您不喜欢以下语法:
ls '--color=auto'
Run Code Online (Sandbox Code Playgroud)
您只能=
通过以下方式转义字符:
ls --color'='auto
Run Code Online (Sandbox Code Playgroud)
但我不认为这更好。
归档时间: |
|
查看次数: |
394 次 |
最近记录: |