shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] too many arguments


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 argumentos

Quando 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"
fi
bash: [: 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]