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

6

Estou tentando usar o shell rc (porta Linux do sistema operacional Plan9) e receber mensagens de 'erro de sintaxe' ao usar programas com argumentos como arg = val .

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

Meu palpite é que o shell rc vê o sinal = e trata a instrução como atribuição de variável, não 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 eles são amplamente utilizados?

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

Eu 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 útil?

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

    
por rslnx 11.04.2012 / 12:52

1 resposta

7

de acordo com man rc :

The following characters are special: # ; & | ^ $ = ' ' { } ( ) < > The single quote (') prevents special treatment of any character other than itself.

Então = é um caracter especial que você precisa para escapar.

Se você não gosta da sintaxe:

ls '--color=auto'

você pode escapar apenas do = char por:

ls --color'='auto

mas não acho que seja melhor.

    
por 11.04.2012 / 17:53

Tags