Salviano,
legal sua solução parametrizada.
Só para ser diferente e exercitar um pouco de shell:
com funçao
sem continue
com start
com stop opcional
permite multiplos blocos start/stop
f(){ Y=;while read L;do [ "$3" -a "$3" == "$L" ]&&Y=;[ $Y ]&&echo "$L"
[ "$2" == "$L" ]&&Y=1;done<$1;}
Onde: $1=arquivo $2=start $3=stop
Fácil adaptar para usar stdin ao invés de arquivo, daí com arquivo
poderia usar "cat arq|..."
Fácil também alterar para que linhas start e stop façam parte da saída,
start opcional, etc.
Bom para autoaprendizado, experimentando e "xeretando".
Fiz embolada de propósito, só para xeretas, nerds, hackers, ... :)
Enfim, acho que a melhor e mais agradável forma de aprendizado é a natural,
tipo criança,
e shell se aprende brincando...
EMHO (pt_BR :)
Saudações!
------------------------------------------
>From: Salviano de Araujo
>
>Aqui vai um script um pouco mais claro:
>
>#!/bin/sh
>FILE="$1"
>COND="$2"
>FLAG=1
>while read linha
>do
>if [ "$linha" = "$COND" ]
>then
>FLAG=0
>echo "FLAG alterado"
>echo "O Flag foi alterado na linha: $linha"
>elif [ $FLAG -eq 0 ]
>then
>echo "A linha desejada eh: $linha"
>FLAG=1
>fi
>done<"$FILE"
>
>
>Para verificar se duas cadeias de caracteres são idênticas usa-se o =.
------------------------------------
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html