rc シェル (Plan9 OS から移植された Linux バージョン) で 'arg=val' (例: dd) のような引数を持つプログラムを実行するにはどうすればよいでしょうか?

rc シェル (Plan9 OS から移植された Linux バージョン) で 'arg=val' (例: dd) のような引数を持つプログラムを実行するにはどうすればよいでしょうか?

私はrcシェル(Plan9 OSからのLinuxポート)を使用しようとしていますが、次のような引数を持つプログラムを使用すると「構文エラー」メッセージが表示されます。引数=値

; dd if=/dev/zero of=/dev/null
syntax error
; ls --color=auto
syntax error

私の推測では、rcシェルは=署名し、ステートメントをプログラム実行ではなく変数割り当てとして扱います。 Plan9 には、このタイプの引数を使用する dd プログラムやその他のプログラムがない可能性があります。 しかし、これらが広く使用されている Linux でこれをどのように使用すればよいのでしょうか?

逃げようとした=つまりdd if\=... of\=、役に立たなかった。

次のように引数を引用してみましたdd 'if=/dev/zero' 'of=/dev/null' 'bs=1M' 'count=1'が、うまくいきました。しかし、あまり快適ではありません。他にもっと便利な方法はありますか?

私は Ubuntu 11.10 リポジトリの rc シェルを使用しています: パッケージ バージョン 1.7.1-3ubuntu1。

答え1

によるとman rc

次の文字は特殊です: # ; & | ^ $ = ` ' { } ( ) < > 一重引用符 (') は、それ自身以外の文字が特別扱いされるのを防ぎます。

=脱出する必要がある特別な文字も同様です。

構文が気に入らない場合:

ls '--color=auto'

次のようにすると、文字だけをエスケープできます=

ls --color'='auto

しかし、それがより良いとは思いません。

関連情報