Por que as ferramentas GNU usam não-correspondência 'e' para citar erros?

2

As ferramentas GNU geralmente emitem mensagens de erro e de aviso com partes da linha (por exemplo, nomes de arquivos, erros de sintaxe, datas inválidas, etc.) citadas com aspas não correspondentes: 'e'

por exemplo. Do GNU coreutils FAQ :

$ date -d "2006-04-02 02:30:00"
date: invalid date '2006-04-02 02:30:00'

e

rm: cannot remove 'backup.tar': Value too large for defined data

Por que eles fazem isso? Existe algum benefício nisso? Qual é a história por trás disso?

    
por cas 07.11.2015 / 06:46

1 resposta

4

Com as antigas fontes X, '..' parecia simétrico como ‛.. '

Além disso, o látex '..' gera aspas simples esquerdas e direitas, como ‘…’

Então, '..' foi um hack e, em 2012, o coreutils mudou para shell como citando '..'

Agora, não era uma sintaxe completa do shell, e geraria uma saída corrompida se houvesse caracteres "\ r" embutidos, etc. presentes. Também inconsistentemente, em alguns casos, nenhuma citação foi usada e, às vezes, unicode ".." foi usada a citação (que usa aspas conforme definido para a localidade e serve para escapar desses caracteres de controle).

Um patch ( patch muito recente (2015) set foi introduzido no coreutils para torná-lo mais consistente, citando todas as saídas de nomes de arquivos no formato shell compat, que também escapam aos caracteres de controle apropriadamente, e permite copiar e colar mais facilmente de volta para outros comandos. Outros itens no diagnóstico usam aspas "unicode completo", conforme mencionado acima.

    
por 07.11.2015 / 18:16

Tags