[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] logica
From: |
Felipe Kellermann |
Subject: |
Re: [shell-script] logica |
Date: |
Wed, 2 Jun 2004 13:33:13 -0300 (BRT) |
On Wed, 2 Jun 2004 11:08am -0300, opa wrote:
> O Felipe me lembrou que o comportamento, às vezes inesperado, do
> echo quando o parâmetro não recebe aspas ou apóstrofos, pode aqui
> ser aplicado.
Não é exatamente inesperado. Há um padrão.
Por exemplo, nós temos `$*' e `$@' que sem `"' não fazem diferença.
> Inclusive experimentei, não sabia, o tr pode fazer substituições e
> limitar a um o número de bytes adjacentes idênticos, simultaneamente.
> Ou seja, meu comentário anterior, com um "tr -s" adicional, esqueçam, o
> tr pode fazer tudo numa única chamada:
Na verdade eu queria ter comentado sobre isso na mensagem, mas esqueci.
> $ echo $((2++++++++2))
> 4
>
> $ echo $((2++++++++2+))
> bash: 2++++++++2+: syntax error: operand expected (error token is "+")
>
> Mas como isto é shell, outro shell pode ter comportamento distinto.
Essa opção é exclusivamente uma "feature" da bash. Percebe que não são
duas referências (lvalue) e tolera essa sintaxe -- qualquer outro shell
vai tentar fazer a interpretação de `++' nesse caso. E como não é uma
referência (é um rvalue), vai acusar um erro de sintaxe.
--
Felipe Kellermann