Se você usa o shell Bash há um bom tempo, provavelmente sabe como imprimir strings no terminal Linux usando o comando echo. O comando printf, entretanto, torna a impressão de texto com formatação específica muito mais fácil.

Hoje, aprenderemos como usar a função printf para aprimorar nossas habilidades de script Bash.

O que é a função Bash printf?

Como o nome sugere, printf é uma função que imprime strings de texto formatadas. Isso significa que você pode escrever uma estrutura de string (o formato) e depois preenchê-la com valores (os argumentos).

Se você está familiarizado com as linguagens de programação C / C ++, você já deve saber como funciona o printf. Printf no shell Bash é muito semelhante, mas possui algumas pequenas diferenças.

Saber mais: Melhores sites para começar a programação C ++

Como usar printf no Bash Shell

A sintaxe básica para printf é:

formato printf [argumento]

Printf irá imprimir o formato string durante a implementação escapes (\) e diretivas (%) por meio do uso de argumentos. Observe a saída do seguinte comando:

instagram viewer
$ printf "Olá,% s" mundo
Olá Mundo

Printf pegou o mundo argumento e substituiu o % s caractere na string especificada com ele.

Você pode notar que após a saída, o Bash não cria uma nova linha para você. Ao contrário do comando echo, printf não presumirá que você deseja uma nova linha após a impressão da saída. Assim, você precisará usar o caractere de nova linha \ n em cada instância.

Para imprimir uma string e, em seguida, mover para uma nova linha, digite printf "Olá, mundo \ n".

Olá Mundo

É importante ter em mente que printf tentará reutilizar o formato para todos os seus argumentos. Você pode usar isso a seu favor, mas se não tomar cuidado, poderá obter resultados como este:

$ printf "Meu nome é% s" Jordan Gloor
Meu nome é Jordan Meu nome é Gloor

Você também deve estar ciente de que se um argumento estiver faltando, printf irá interpretar todas as diretivas como 0 (para um número) e nulo (para uma string).

$ printf "Olá,% s."
Olá, .

Agora que você sabe como funciona o script Bash com printf no Linux, está pronto para começar a usá-lo em seus comandos.

Exemplos do Linux Bash printf

Printf apresenta muitos especificadores de formato que você pode usar em seus scripts. Mas hoje vamos cobrir apenas alguns dos mais comuns para a função.

1. Saída de formato com uma string

Para formatar a saída com strings de texto, use o % s diretiva.

$ printf "% s é um dos maiores% s online." MUO "publicações de tecnologia"
MUO é uma das maiores publicações de tecnologia online.

2. Formato de string de saída com decimais

Para formatar uma string com um inteiro, você pode usar o % d diretiva para um decimal assinado.

$ printf "A MUO foi fundada em% d." 2007
A MUO foi fundada em 2007.

Observe que se você quiser usar um decimal sem sinal na saída, você terá que usar o %você em vez disso.

Relacionado: O que significa "Bash" no Linux?

3. Saída de funções matemáticas usando printf

Formatar funções matemáticas com o comando printf é fácil. Basta colocar sua expressão entre parênteses duplos, como você normalmente faz no Bash, e especificar a expressão na lista de argumentos.

$ printf "1 + 1 é% d" $ ((1 + 1))
1 + 1 é 2

4. Formatar números hexadecimais

Se você precisar formatar um número hexadecimal, use % x para minúsculas e % X para maiúsculas.

$ printf% X 1000
3E8C

5. Imprimir data e hora

Para imprimir a data e hora atuais, você pode combinar printf com o encontro comando e passar as seguintes diretivas.

$ printf "% (% m-% d-% Y% H:% M:% S) T" $ (data +% s)
03-26-2021 15:27:57

Você pode ver os especificadores de formato para mês, dia, ano, hora, minuto e segundo na saída mencionada.

6. Formatar Strings com Caracteres Unicode

Para imprimir caracteres Unicode com printf, use o \você escape para Unicode de 16 bits e \VOCÊ para Unicode de 32 bits.

Por exemplo, você pode imprimir o direito autoral símbolo com o seguinte comando:

$ printf "\ u00A9"
©

7. Adicionar espaçamento à saída

Você pode formatar suas strings com espaçamento definindo, antes do especificador de diretiva, um número mínimo de caracteres impressos. Os caracteres não usados ​​serão preenchidos com espaços.

Por exemplo, digitando printf "% s:% 5d \ n" "Valor 1" 25 "Valor 2" 120 irá produzir:

Valor 1: 25
Valor 2: 120

O % 5d O especificador de formato na saída indica que a string formatada conterá no mínimo cinco caracteres. Como 25 tem apenas dois dígitos, espaços são adicionados aos caracteres restantes.

Se você passar um número negativo como largura, a diretiva será justificada à esquerda em vez de à direita.

$ printf "% -10s:% d" "Círculos" 25 "Caixas" 120
Círculos: 25 Caixas: 120

Se você quiser fazer a variável de largura, pode passar um asterisco em vez de um número, e printf usará o próximo número que encontrar na lista de argumentos.

$ printf "% * s:% d" -10 "Círculos" 25 -10 "Caixas" 120
Círculos: 25 Caixas: 120

Relacionado: Tudo o que você precisa saber sobre o Bash For Loops no Linux

Aprendendo o comando printf do Linux

Com o comando printf em seu cinto de utilitários de script Bash, você está pronto para começar a imprimir strings complexas e variadas em seu terminal. Ao desenvolver seus scripts Bash, é importante certificar-se de que você está trabalhando no ambiente mais produtivo possível. Isso não apenas aprimorará suas habilidades de linha de comando, mas também aprimorará seu fluxo de trabalho em geral.

O email
10 melhores distros Linux para desenvolvedores

Pronto para iniciar o desenvolvimento em um sistema operacional de código aberto? Aqui estão as melhores distros Linux para programação.

Leia a seguir

Tópicos relacionados
  • Linux
  • Linux Bash Shell
  • Comandos Linux
Sobre o autor
Jordan Gloor (32 artigos publicados)

Jordan é um tutor e jornalista apaixonado por tornar o Linux acessível e sem estresse para todos. Ele é bacharel em inglês e gosta de chá quente. Durante as estações quentes, ele gosta de pedalar pelas colinas do Ozarks, onde mora.

Mais de Jordan Gloor

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas técnicas, análises, e-books grátis e ofertas exclusivas!

Mais um passo…!

Confirme o seu endereço de e-mail no e-mail que acabamos de enviar.

.