%20%E3%81%A7%20'arg%3Dval'%20(%E4%BE%8B%3A%20dd)%20%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E5%BC%95%E6%95%B0%E3%82%92%E6%8C%81%E3%81%A4%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F.png)
私は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
しかし、それがより良いとは思いません。