Qual é o significado de ler -r?

14

para entender outra resposta:

find / -type d -print0 | while read -r -d ''; do ls -ltr "$dir" | sed '$!d'

o primeiro passo é entender o uso da opção -r do comando read.

Primeiro, pensei, seria suficiente simplesmente executar

man read

para procurar o significado da opção -r, mas eu percebi que a man page não contém nenhuma explicação para a opção, então eu pesquisei para ler alguns exemplos - leia -p, mas não leia -r.

    
por Abdul Al Hazred 27.03.2015 / 01:43

1 resposta

20

Não há um comando read autônomo: em vez disso, ele é um shell interno e, como tal, está documentado na página man em bash :

read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p
prompt] [-t timeout] [-u fd] [name ...]
[...]
       -r     Backslash does not act as an escape character.  The back‐
              slash is considered to be part of the line.  In  particu‐
              lar,  a  backslash-newline pair may not be used as a line
              continuation.

Portanto, para resumir, read normalmente permite que linhas longas sejam quebradas usando um caractere de barra invertida e geralmente reconstrói essas linhas. Este comportamento ligeiramente surpreendente pode ser desativado usando -r .

    
por 27.03.2015 / 01:53