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