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

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

Re: [shell-script] Testando variável


From: Eliphas Levy Theodoro
Subject: Re: [shell-script] Testando variável
Date: Mon, 18 Apr 2005 21:20:53 -0300 (BRT)

Em shell puro:
- muda o ip pra numero de linhas e ver se dá 4;
- checar se o campo é numérico;
- checar se o valor é entre X e Y.

Tem a vantagem de ficar mais fácil pra você ver se, por exemplo, o
primeiro octeto é igual a 0, ou alguma checagem mais complicada, por
exemplo, netmask.

#!/bin/sh
[ $(echo "$IP" | tr '.' '\n' | wc -l) -ne 4 ] && exit 1
i=0
echo "$IP" |
tr '.' '\n' |
while read num; do
     let i++
     echo "$num" | grep -q "[^0-9]" && exit 1
     [ "$num" -lt 0 -o "$num" -gt 255 ] && exit 1
     [ "$i" -eq 1 ] && [ "$num" -eq 0 ] && exit 1
done


Mais um jeitinho:

echo "$IP" | 
awk 'BEGIN{RS="."}{if ($1<0||$1>255) exit 1}END{if (NR!=4) exit 1}' &&
echo Válido ||
echo Inválido

Em várias linhas pra ficar fácil de ler:
BEGIN { RS="." }
{ if ( $1<0 || $1>255 ) exit 1 }
END { if ( NR != 4 ) exit 1 }
-- 
Eliphas

Fábio Batista, @ 17:38:
> echo "$IP" | egrep -q
> '^(1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))\.(1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))\.(1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))\.(1?[0-9]?[0-9]|2([0-4][0-9]|5[0-5]))$'
> && echo válido || echo INVÁLIDO

> On 4/18/05, Alexandre Miraldo <address@hidden> wrote:
>>  Montei um script para testar se uma variável é um IP ou não ...
>>
>>  Se alguém tiver alguma sugestão de melhoria eu agradeço...

[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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