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:
$ 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.
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
- Linux
- Linux Bash Shell
- Comandos Linux
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.
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.