Ler linha por linha

1. Ler linha por linha

Victor
detoniks

(usa Debian)

Enviado em 06/03/2013 - 14:34h

olá,

como faço para meu script atual ler linha por linha?

for i in $(sudo asterisk -rx 'core show channels verbose' | grep ^SIP | grep -v Channel | grep -v active | grep -v calls | sed 's/[()]//g'); do

CANAL=$(echo ${i} | cut -b 1-21)

echo $CANAL
done


Tenho que fazer com while read?
grato



  


2. Re: Ler linha por linha

Victor
detoniks

(usa Debian)

Enviado em 06/03/2013 - 14:56h

O que esta errado aqui:


while read i $(sudo asterisk -rx 'core show channels verbose') do

CANAL=$(echo ${i} | cut -b 1-20)



echo $CANAL

done



3. Re: Ler linha por linha

Victor
detoniks

(usa Debian)

Enviado em 06/03/2013 - 15:24h

Ja encontrei o erro
Mudei para:

sudo asterisk -rx 'core show channels verbose' | grep ^SIP | while read i; do

CANAL=$(echo $i | cut -b 1-17)


echo $CANAL

done


Porem eu gostaria de saber pq ele substitui varios espaços por apenas um?

ex: qd executo o comando o retorno eh asism:

Channel Context Extension
SIP/8114-000002f3 Admin 1

Porem qd leio a linha ela me retorna assim:

Channel Context Extension
SIP/8114-000002f3 Admim 1

Como preciso usar substr isso me complica






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts