Onde posso encontrar uma boa documentação para o bash printf?

4

man printf , info printf e printf --help são todos bastante inúteis para mim; Eu quero uma explicação das opções FORMAT . Por exemplo, eu poderia usar:

printf '%s\n' foo bar

e receba a saída:

foo
bar

A partir da leitura geral on-line, suponho que %s signifique algo como 'separador', por isso, printf imprime todos os argumentos fornecidos, separados por novas linhas.

Eu também vi referências aqui e ali para %d e vários outros (acho que tem algo a ver com dígitos?). Alguém poderia fornecer uma visão geral dessas opções de formatação?

    
por evilsoup 23.07.2013 / 19:30

2 respostas

5

O melhor recurso que encontrei é o wiki do bash-hackers.org para todas as coisas relacionadas ao Bash . É o que as páginas de manual devem ser em vez de uma pilha massiva que é difícil de navegar.

Existem tópicos específicos sobre o builtin, incluindo printf . Esta página é exaustiva! Ele inclui todas as opções de formatação, bem como exemplos e até mesmo uma seção de discussão na parte inferior para ajudar a entender nossos casos e nuances de canto com a funcionalidade printf .

Também sou conhecido por usar a documentação do GNU Coreutils sobre printf , especificamente a página no opções de formatação , em um aperto.

    
por 24.07.2013 / 03:58
11

Para o bash, o recurso principal é man bash . Para builtins especificamente, há o help builtin. Aqui está uma citação de help printf .

In addition to the standard format specifications described in printf(1) and printf(3), printf interprets:

 %b        expand backslash escape sequences in the corresponding argument
 %q        quote the argument in a way that can be reused as shell input
 %(fmt)T output the date-time string resulting from using FMT as a format
       string for strftime(3)

A notação printf(N) usada no help printf significa que você deve consultar a seção do manual do comando denotada pelo número entre parênteses.

Veja man 1 printf , man 3 printf , e se você quiser man 3 strftime para o especificador especial% (fmt) T.

Você tem que juntar tudo sozinho; a documentação não lista simplesmente "% s é para string,% d é para dígito". Eu acredito que a principal coisa que você está pedindo é conhecida como especificação de conversão .

    
por 23.07.2013 / 19:42