shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Ler linha com espaços no início


From: Elder Marco
Subject: Re: [shell-script] Re: Ler linha com espaços no início
Date: Tue, 13 Nov 2012 13:08:03 -0200

2012/11/12 Julio C. Neves <address@hidden>:
> Eu tinha tanta certeza do que falava, que nem testei. Qdo vi o site que
> postaram aqui na lista e que falava sobre o read, fiz uma massa de testes e
> vi que realmente ele capa os espaços iniciais e finais (isso é bug!). Já
> fiz uma anotação para colocar na próxima impressão do meu livro.
>

Júlio,

Aparentemente os desenvolvedores do bash estão cientes disso. Lendo
com mais atenção
a ajuda do comando read, notei que este comando não lê exatamente uma
linha --- como eu
esperava ---, mas sim as palavras nesta, atribuindo as variáveis
correspondentes.
Para saber onde começa e onde acaba uma palavra, os comando read considera como
delimitadores aquilo que está presente na variável IFS. Veja:


    Read a line from the standard input and split it into fields.

    Reads a single line from the standard input, or from file descriptor FD
    if the -u option is supplied.  The line is split into fields as with word
    splitting, and the first word is assigned to the first NAME, the second
    word to the second NAME, and so on, with any leftover words assigned to
    the last NAME.  Only the characters found in $IFS are recognized as word
    delimiters.

Dessa maneira, se o comportamento padrão do comando read fosse
alterado, ele poderia
gerar resultados inesperados. Talvez fosse uma boa ideia -- eu acho --
existir algum builtin
que lesse a linha por completo, sem remover nenhum caractere dela. Ou
ainda, existir
alguma opção para este comando que mudasse esse comportamento. Mas mesmo
não existindo, setar o IFS como sendo '' já resolve o problema.

-- 
Elder Marco

GNU/Linux User: #471180

"Contra o positivismo, que pára perante os fenômenos e diz: 'Há apenas
fatos', eu digo: 'Ao contrário, fatos é o que não há; há apenas
interpretações'. "(Nietzsche)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]