web-dev-qa-db-ja.com

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

Rc Shell(Plan9 OSのLinuxポート)を使用しようとしていますが、arg = valのような引数を持つプログラムを使用すると、「構文エラー」メッセージが表示されます。

; 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。

6
rslnx

による man rc

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

そう =はエスケープする必要のある特別な文字です。

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

ls '--color=auto'

エスケープできるのは= char by:

ls --color'='auto

しかし、私はそれがこれ以上良いとは思いません。

7
Michał Šrajer