
我正在嘗試使用 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
但我認為這並沒有更好。