Pular para o conteúdo

WHILE READ

Responder tópico
  • Denunciar
  • Indicar

1. WHILE READ

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?

Responder tópico

2. Re: WHILE READ

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

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder