Olá! Não testei, mas acho que se você colocar um if dentro do seu for dá pra fazer esse teste:
if [ -z $i ]; then echo "Interface não existe"; continue; done -- []'s Cléoson. http://farinhadigital.blogspot.com/ 2010/1/21 wilson rodrigues da silva <powertecn...@yahoo.com.br> > > > Prezados do grupo, estou fazendo um script que mostre o IP, a máscara e o > gateway de uma interface de rede do PC. Essa interface deve ser fornecida > pelo usuário via passagem de parâmetros. O script deve testar se a interface > existe. Se não, deve mostrar uma mensagem de erro. Deve testar também se a > quantidade de parâmetros for maior que o necessário ou se for menor que o > necessário. > A minha dúvida é: se a interface não existir como mostrar uma mensagem de > erro e também como testar se quantidade de parâmetros for maior ou menor que > o necessáro? > Obrigado. > Wilson > > > # Uma parte do script: > > for i in $( ifconfig | grep eth | cut -d" " -f1 ); do > > # Captura o IP da máquina. > IP=$( ifconfig $i | grep -w 'Bcast' | awk '{ print $3 }' ) > > # Captura a mascara de rede. > MASK=$( ifconfig $i | grep -w 'inet' | awk ' { print $5 }' | sed -e "s/ > Masc://g" ) > > # Captura o gateway da rede. > GW=$( route -n | grep -w 'default' | awk ' { print $2 } ' ) > > # Imprime os dados. > echo -e " > ------------------------------------ > > $V Endereço IP$B $A$IP$B > $V Máscara$B $A$MASK$B > $V Gateway$B $A$GW$B > > ------------------------------------ > " > > done > [As partes desta mensagem que não continham texto foram removidas]