Como executar programas com argumentos como 'arg=val' (por exemplo, dd) no shell rc (versão Linux portada do sistema operacional Plan9)?

Como executar programas com argumentos como 'arg=val' (por exemplo, dd) no shell rc (versão Linux portada do sistema operacional Plan9)?

Estou tentando usar o rc shell (porta Linux do Plan9 OS) e receber mensagens de 'erro de sintaxe' ao usar programas com argumentos comoarg = valor.

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

Meu palpite é que o rc shell vê=assina e trata a instrução como atribuição de variável, não como uma execução de programa. Pode ser que não haja nenhum programa dd ou outros programas usando esse tipo de argumento no Plan9. Mas como posso usá-lo no Linux, onde são amplamente utilizados?

Eu tentei escapar=tipo dd if\=... of\=, não ajudou.

Tentei citar argumentos como dd 'if=/dev/zero' 'of=/dev/null' 'bs=1M' 'count=1'e funcionou. Mas não é muito confortável. Existe alguma outra maneira mais prática?

Estou usando o rc shell do repositório Ubuntu 11.10: versão do pacote 1.7.1-3ubuntu1.

Responder1

de acordo com man rc:

Os seguintes caracteres são especiais: # ; & | ^ $ = ` ' { } ( ) < > As aspas simples (') impedem o tratamento especial de qualquer caractere que não seja ele mesmo.

O mesmo =acontece com um personagem especial do qual você precisa escapar.

Se você não gosta da sintaxe:

ls '--color=auto'

você pode escapar apenas do =char:

ls --color'='auto

mas não acho que seja melhor.

informação relacionada