私は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
しかし、それがより良いとは思いません。