WHILE READ

1. WHILE READ

andre
andrebiliati

(usa Outra)

Enviado em 23/05/2014 - 15:28h

Senhores,

Crie um script para verificar um arquivo que tem o nome das interfaces e estado conforme abaixo:

cat /root/name-2

"Link de dados no.1" 1
"Link de dados no.2" 1
"Link de dados no.3" 2
"Link de dados no.4" 2
"Link de dados no.5" 1
"Link de dados no.6" 1
"Link de dados no.7" 1
"Link de dados no.8" 1
"Link de dados no.9" 1
"Link de dados no.10" 1
"Link de dados no.11" 1
"Link de dados no.12" 3
"Link de dados no.13" 1
"Link de dados no.14" 1
"Link de dados no.15" 1

Meu script :

#!/bin/sh
operation="2"
IFS=$'\n'
cat /root/name-2 | while read interface operation

do

# Comparação do INTERFACE
if [ 1 = "$operation" ];
then
echo "INTERFACE DOWN $interface"
else
echo "INTERFACE UP $interface"


fi
done

Mas o resutado esta acontencendo isso:

INTERFACE UP "Li
INTERFACE UP "Li
INTERFACE UP "Li
INTERFACE UP "Li
INTERFACE UP "Li
INTERFACE UP "Li
INTERFACE UP "Li
INTERFACE UP "Li
INTERFACE UP "Li
INTERFACE UP "Li
INTERFACE UP "Li
INTERFACE UP "Li
INTERFACE UP "Li
INTERFACE UP "Li
INTERFACE UP "Li

O nome das interfaces estão cortados, já efetue algumas alterações mas sem sucesso

Pode ajudar?


  


2. Re: WHILE READ

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 24/05/2014 - 01:26h

o IFS acabou interpretando o "n", faria algo como:


#!/bin/bash

cat teste | while read LINHA
do
operation=${LINHA:$((${#LINHA}-1)):1}
interface=${LINHA:0:$((${#LINHA}-2))}
[ 1 -eq "$operation" ] && echo "INTERFACE DOWN $interface" || echo "INTERFACE UP $interface"
done








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts