Rafael, vamos lá: qdo vc usa o cmd test com a sintaxe [ c1 < c2 ], vc está comparando cadeias e assim mesmo, vc tem de escapar o menor que (<). Veja:
$ a=a $ b=b $ [ $a < $b ] && echo menor bash: b: Arquivo ou diretório inexistente $ [ $a \< $b ] && echo menor menor Uma forma melhor de fazer isso seria usando o intrínseco (*builtin*) da forma [[ c1 < c2 ]], veja: $ [[ $a < $b ]] && echo menor menor Porém temos aí um problema, olha só isso: $ a=10% $ b=2% $ [[ $a < $b ]] && echo menor menor Isso aconteceu pq a comparação por ser alfa, testa byte a byte e o primeiro byte de $a (1) é menor que o primeiro byte de $b (2). Então, para finalizar, acho que vc deveria excluir o símbolo de % das variáveis e compará-las numericamente. Veja mais detalhes sobre o tema aqui<http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo004>e aqui<https://twiki.softwarelivre.org/TWikiBar/TWikiBarBirinaite#Testes_usando_express_es_regular>. Está escrito em português, e vc perderá menos tempo para ler, do que eu demorei para escrever este e-mail. Se vc quiser aprender *mesmo* a programar em shell, leia os Papos de Botequim publicados em http://www.julioneves.com. -- Abração, Julio *Cursos de Shell nos finais de semana: - Em SP ligue (11) 2125-4747; - Em DF ligue (61) 3223-3000; - Turmas fechadas em outras cidades ligue (21) 8112-9988* 2008/11/21 Rafael Tomelin <[EMAIL PROTECTED]> > Guilherme, > > Valeu, quero mesmo fazer comparaç~oes num'ericas (porcentagem), pois tenho > que ver a porcentagem do disco usado. > > 2008/11/21 Guilherme Gall <[EMAIL PROTECTED] <gmgall%40gmail.com>> > > > > Rafael, > > > > Provavelmente você está se confundindo um pouco com a sintaxe porque é > > possível fazer comparações numéricas usando ((comparação)) > > > > Exemplo: > > > > $ echo $var > > 10 > > > > $ if ((var > 10)) > > > then > > > echo Maior que 10 > > > else > > > echo Não é maior que 10 > > > fi > > Não é maior que 10 > > > > $ if ((var == 10)); then echo Igual a 10; else echo Não é igual a 10; fi > > Igual a 10 > > > > Comparações numéricas "clássicas" são feitas com o comando test ou [ > > > > Mesmos exemplos acima: > > > > $ if [ $var -gt 10 ]; then echo Maior que 10; else echo Não é maior que > 10; > > fi > > Não é maior que 10 > > > > $ if [ $var -eq 10 ]; then echo Igual a 10; else echo Não é igual a 10; > fi > > Igual a 10 > > > > Pela comparação que você está tentando fazer - $STATUS3 > "50%", > > parece que você está tentando fazer uma comparação numérica. Se for > > isso mesmo, eu retiraria a porcentagem e faria uma comparação usando > > um dos métodos mostrados acima. > > > > Opções do comando test em http://aurelio.net/shell/canivete.html#test > > > > Espero ter ajudado, > > -- > > Guilherme Magalhães Gall > > > > ---------- // ---------- > > > > 2008/11/21 Rafael Tomelin <[EMAIL PROTECTED]<rafael.tomelin%40gmail.com> > <rafael.tomelin%40gmail.com> > > >: > > > > > Olá pessoal, > > > > > > Quero pegar a porcentagem de disco usado e fazer uma comparação, mas > está > > me > > > retornando erro aqui. > > > > > > Estou fazendo da seguinte forma: > > > > > > PORC=`df -lh | grep var | awk -F' ' '{ print $5 }'` > > > > > > if ( $PORC == "30%" ); then > > > STS=1 > > > fi > > > > > > mas não funciona, .. como poderia resolver esse problema? > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > ------------------------------------ > > > > > > ---------------------------------------------------------- > > > Esta lista não admite a abordagem de outras liguagens de programação, > > como perl, C etc. Quem insistir em não seguir esta regra será moderado > sem > > prévio aviso. > > > ---------------------------------------------------------- > > > Sair da lista: [EMAIL > > > PROTECTED]<shell-script-unsubscribe%40yahoogrupos.com.br> > <shell-script-unsubscribe%40yahoogrupos.com.br> > > > ---------------------------------------------------------- > > > Esta lista é moderada de acordo com o previsto em > > http://www.listas-discussao.cjb.net > > > ---------------------------------------------------------- > > > Servidor Newsgroup da lista: news.gmane.org > > > Grupo: gmane.org.user-groups.programming.shell.brazil > > > > > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Abração, Julio Cursos de Shell nos finais de semana: - Em SP ligue (11) 2125-4747; - Em DF ligue (61) 3223-3000; - Turmas fechadas em outras cidades ligue (21) 8112-9988 [As partes desta mensagem que não continham texto foram removidas]
