|
From: | Fernando Lemes da Silva |
Subject: | Re: [shell-script] too many arguments |
Date: | Tue, 22 Feb 2005 09:16:48 -0300 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040618 |
Tia, too many arguments = muitos argumentosQuando voce roda um comando com as crases e este comando retorna várias palavras (eg. "o rato roeu a roupa do rei de roma") acontece o seguinte:
[ -z o rato roeu a roupa do rei de roma ]Ou seja, o -z vai verificar se o argumento seguinte é vazio. Em seguinda ele irá ver que o argumento seguinte é 'o', que torna a condição verdadeira. Depois ele vai analisar o que vem depois: rato? Este argumento não era esperado (talvez um -a ou -o fosse)...
Enfim, para resolver o problema coloque aspas em volta das crases. Isso fará com que a saida das crases seja um único argumento. Assim depois do comando ser executado o if ficaria assim:
[ -z "o rato roeu a roupa do rei de roma" ] []'s /********************************************** _ Fernando Lemes da Silva °v° www.koho.com.br /(¡)\ Linux user #address@hidden ^ ^ lICQ UIN 2371843 echo 396752965710071000896145190854552842P | dc **********************************************/ Tia wrote:
Salve galera das conchas, Fiz esse if abaixo e estou tento um erro de too many arguments,não sei o que está errado.. O programa funciona, mesmo com esse erro, mas, para efeitos ditaticos, se alguem puder me dar uma luz, ficaria grato. PS. o IP está entre 2 apostrofos. Segue abaixo o if e suas respostas: ~$ if [ -z `host merda.com |grep ''64.239.78.46'';` ];then echo "nada de merda" else echo "achei merda" fibash: [: too many arguments achei merda ~$ ~$ if [ -z `host merda.com |grep ''164.239.78.46'';` ]; then echo "nada de merda"; else echo "achei merda" ; fi nada de merda ~$ []'s Tia
[Prev in Thread] | Current Thread | [Next in Thread] |