[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Ajuda para se fazer um script !!!!
From: |
Henrique Limaverde Cabral de Lima |
Subject: |
Re: [shell-script] Ajuda para se fazer um script !!!! |
Date: |
Thu, 1 Mar 2001 10:02:19 -0300 (EST) |
On Wed, 28 Feb 2001, Jorge Yuri de Lion Yamane wrote:
> Vou dar mais detalhes. Eu gostaria que a shell perguntasse qual ? a p?gina
> inicial e a final que o usuario quer, ent?o pegasse esse numeros e fizesse os
> calculos que mencionei no e-mail anterior.
Olah Yuri,
nao sei se voce jah resolveu seu problema, mas vou mandar uma solucao
que acho que vai ajudar: voce soh precisa passar o numero das paginas
inicial e final e o nome do arquivo como argumentos do script (acho que
fica melhor do que fazer o programa pedir iterativamente). A saida eh
jogada na tela para que voce possa redirecionar facilmente. Coloquei uns
testes pra nao permitir que qualquer numero de pagina seja fornecido e
alguns comentarios tambem
OBS: se o let nao funcionar, voce pode usar a sugestao do auth:
tam='expr ($2 - $1 + 1) * $LIN_POR_PAG'
fim='expr $2 * $LIN_POR_PAG'
Soh que esse esquema nao funcionou aqui no bash do linux :( Ei auth, qual
eh o shell que voce estah usando?
Espero que resolva teu problema
Henrique Lima
---------------------------------------------------------------------
#!/bin/bash
#
# Esse arquivo retira as paginas ini e fin de um arquivo texto
# com numero de linhas fixo por pagina
# OBS: se o arquivo tiver menos que o numero de paginas pedido para
# extrair, entao serah extraido ateh o fim do arquivo.
LIN_POR_PAG=64
if [ $# -ne 3 ]; then
echo "Sintaxe: $0 pagina_inicial pagina_final nome_do_arquivo"
exit 1
fi
if [ ! -r $3 ]; then
echo "Nao consigo abrir o arquivo $3"
exit 2
fi
if [ $1 -lt 1 ]; then
echo "Numero da primeira pagina deve ser maior que 0"
exit 3
fi
if [ $2 -lt $1 ]; then
echo "Numero da pagina final deve ser maior ou igual 'a da primeira"
exit 4
fi
let tam=($2-$1+1)*$LIN_POR_PAG # numero de linhas das paginas de interesse
let fim=$LIN_POR_PAG*$2 # numera da linha onde termina a ultima pagina de
interesse
head -$fim $3 | tail -$tam
# primeiro pegue do comeco ateh o fim da ultima folha
# depois pegue do fim ateh o tamanho das paginas que se quer (ou seja,
descate as paginas iniciais)
- Re: [shell-script] Ajuda para se fazer um script !!!!,
Henrique Limaverde Cabral de Lima <=