[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Pedido de ajuda para gravar linhas em arquivo com Korn Shell
From: |
cerajolis |
Subject: |
Pedido de ajuda para gravar linhas em arquivo com Korn Shell |
Date: |
Mon, 12 Feb 2007 10:29:44 -0000 |
User-agent: |
eGroups-EW/0.82 |
Olá componentes do grupo, estou estudando pelo livro do Randal K.
Michael - Dominando Unix Shell Scripting e estou precisando de um
auxílio para resolver um problema em um exercício que grava
caracteres para formar linhas em arquivo.
Eu consigo criar o arquivo, porém não as linhas, por isso estou
recorrendo ao grupo, talvez alguém já tenha executado este exercício e
tenha a solução.
No exercício eu digitei todas as variáveis em minúsculas para não
confundir com as variáveis de ambiente.
E estou utilizando o Korn Shell
Para executar uso o comando ./bigfile.ksh <número_de_linhas_desejado>
Antecipadamente agradeço.
#!/bin/ksh
#
#set -n # verifica sintaxe
#set -x # depura Shell script
# Define Função
Function usage {
echo "\n........USAGE ERROR........\n"
echo "\Nusage: $SCRIPT_NAME number_of_80_char_lines\n"
# Verifica o número correto de parâmetros
if (( $# !1 )) # Procurando um parametro
then
usage # Houve erro de uso
exit # Sai com um erro de uso
fi
# Define arquivos e variáveis aqui
LINE_LENGTH=80 # Número de caracteres por
linha
OUT_FILE=/scripts/bigfile # Novo arquivo a ser criado
>$OUT_FILE # Inicializa um
arquivo de tamanho zero
SCRIPT_NAME=$(basename $0) # Extrai o nome do script
TOTAL_LINES=$1 # Número total de linhas a
criar
LINE_COUNT=0 # Contador de caracteres
CHAR=X # Caractere a
escrever no arquivo
# Início de Main
while (( LINE_COUNT < TOTAL_LINES )) # Especificado por $1
do
CHAR_COUNT=0 #Inicializa o
contador em zero a cada nova linha
While (( CHAR_COUNT < LINE_LENGTH )) # Cada linha tem
tamanho fixo
Do
Echo "${CHAR}\c" > $OUT_FILE # Ecou um único caractere
(( CHAR_COUNT = CHAR_COUNT +1 )) # Incrementa contador
de caractere
done
(( LINE_COUNT = LINE_COUNT+1 )) # Incrementa contador de
linhas
echo > $OUT_FILE #Dá um novo caractere de new line
done
- Pedido de ajuda para gravar linhas em arquivo com Korn Shell,
cerajolis <=