Qual é a diferença entre Printf e Echo em Bash?

Qual é a diferença entre Printf e Echo em Bash?
Podemos querer organizar o resultado de uma operação do Ubuntu de uma maneira específica. Talvez devêssemos evitar resultados inchados e apresentar informações em um estilo conciso. Os comandos eco e printf também são construídos. O PrintF fornece a criação de uma string de formatação e oferece um status de desistência diferente de zero quando falhar. Enquanto o eco normalmente sai com um status 0 e normalmente produz entradas lideradas pelo final do caractere da linha sobre este resultado padrão. O "printf" oferece mais opções para o formato de saída do que o "eco". Ao longo desta breve lição, veremos como estilizar os resultados do terminal usando as instruções Echo e Printf no Ubuntu 20.04 Sistema Linux.

Exemplo 01:

Para enfatizar e ver o funcionamento das declarações Printf e Echo, vamos ter nosso primeiro simples e fácil de fazer um exemplo. Você tem que abrir o aplicativo de shell do console para fazer isso. Para isso, use o "Ctrl+Alt+T" na tela da área de trabalho do seu Ubuntu 20.04 Sistema operacional Linux. O pedido de console será aberto em alguns momentos e, para isso, você não precisa esperar muito. Após a abertura do terminal, realizaremos as declarações "printf" e "eco" separadamente para ver como elas funcionam corretamente. Então, tentamos "Printf" no shell primeiro para imprimir o número de caracteres em uma string "Linux" em nosso shell.

O comando foi usado com a bandeira "-m" junto com a palavra-chave "WC". O comando foi listado na imagem abaixo. Depois de executar este comando pressionando a tecla "Enter", obtivemos 5 como resultado. Isso significa que o "printf" contém apenas 5 letras. Como o printf é uma declaração padrão, é por isso que exibiria os argumentos de uma forma formatada padrão enquanto está no controle.

$ printf 'linux' | wc -m

Vamos dar uma olhada na declaração "Echo" agora. Portanto, a sintaxe geral para o comando será a mesma, mas a declaração "Echo" será usada em vez de "printf" aqui. A string fornecida no comando também é a mesma. Quando executamos o comando no console, ele exibe o número 6 como resultado. Por que isso acontece quando uma string contém apenas 5 caracteres? Isso ocorre porque a declaração "Echo" também conta a "nova linha" como seu personagem, de acordo com o manual de mangueira padrão "Echo" Bash "Echo". Se adicionarmos algum espaço antes ou depois da corda, ele também o levará como um personagem.

$ echo 'linux' | wc -m

Exemplo 02: Usando Printf

Vamos ver o funcionamento da declaração "printf" primeiro em nosso novo exemplo. Crie um novo arquivo Bash “Teste.SH ”com a utilização de um comando Nano Touch seguido pelo comando“ nano ”no shell. O comando nano será usado para abrir o arquivo dentro de um editor "nano". Após a abertura do arquivo, adicionamos a extensão Bash primeiro na primeira linha de um arquivo. A variável "STR" foi inicializada com um longo valor de string nele. Declaramos uma variável embutida "ifs" para usar o espaço como seu valor delimitador.

Em seguida, usamos o comando "leitura" na próxima linha para ler os valores de uma variável de string como uma matriz e salvá -la na variável "arr". A bandeira "-ra" foi usada aqui para esse fim, especialmente. Depois disso, a declaração de eco é utilizada aqui para nos informar sobre o tamanho de uma variável de matriz "arr". O loop "for" foi inicializado para iterar cada palavra de uma variável de string e exibi -la no shell usando a instrução "printf". Como sabemos que o printf não leva a próxima linha como seu próximo personagem automaticamente, então usamos o caractere "\ n" na instrução PRIMF para fazê -lo. O loop termina aqui, e o código será salvo com a ajuda de uma chave de atalho "Ctrl+S".

Para ver os resultados da instrução PRINTF, execute o arquivo com o comando "bash" para fazê -lo funcionar. A saída exibe o tamanho de uma matriz, eu.e., 9. Depois disso, cada palavra de uma string foi iterada usando o loop "for" e exibida no terminal separadamente em cada próxima linha. Isso foi feito usando o "\ n" na cláusula "printf". Caso contrário, pode não ter acontecido.

Teste de $ bash.sh

Exemplo 03: Usando Echo

Dentro deste novo exemplo, ilustraremos o funcionamento da declaração "Echo" no script Bash. Então, abrimos o mesmo “teste.SH ”Encontre com a ajuda de um comando“ nano ”no console do shell. O arquivo é aberto no editor Nano. Todo o código permaneceu inalterado, eu.e., Suporte de bash, string "str", variável ifs, instruções de leitura e loops "para". A única alteração que você precisa fazer é: substituir a palavra "printf" pela palavra -chave "eco" no script Bash.

Você pode ver que também adicionamos "\ n" na declaração "Echo" para entrar na nova linha. Como todos sabemos, a declaração "Echo" sempre considera a nova linha como um personagem adicional; Portanto, não formará a saída como tal.

Vamos executar o código para ver os resultados. Em vez de criar uma lacuna de 1 nova linha, a declaração de eco considera o "\ n" como um personagem adicional. Portanto, a saída parece algo abaixo.

Teste de $ bash.sh

Vamos atualizar o código para obter os resultados necessários. Então, depois de abrir o arquivo, removemos o caractere "\ n" da string de declaração de eco. Salvou o código e desistiu do arquivo.

Depois de executar o código atualizado desta vez, temos novamente o tamanho de uma matriz de string como "9". Depois disso, todas as palavras de uma matriz foram exibidas separadamente, cada uma na próxima linha.

Teste de $ bash.sh

Conclusão:

Este guia contém mais de um exemplo para ilustrar a funcionalidade e a diferença das declarações "printf" e "eco". Prefira usar a declaração "printf" em Bash, porque é mais padronizada, pois "Echo" se comporta aos postes separados em outras plataformas.