Header Ads

Como usar o comando Echo no Linux

O comando echo é perfeito para escrever texto formatado na janela do terminal.E não precisa ser texto estático. Pode incluir variáveis ​​de shell, nomes de arquivos e diretórios. Você também pode redirecionar o eco para criar arquivos de texto e arquivos de log. Siga este guia simples para descobrir como.

O Echo repete o que você deve repetir

Zeus gostava de deixar o Monte Olimpo em consorte com belas ninfas. Em uma viagem, ele disse a uma ninfa da montanha chamada Echo para atrapalhar sua esposa, Hera, se ela o seguisse. Hera veio procurar Zeus, e Echo fez todo o possível para manter Hera em conversa. Por fim, Hera perdeu a paciência e amaldiçoou o pobre Echo, para que ela apenas repetisse as últimas palavras que alguém havia dito.O que Hera fez com Zeus quando o alcançou é o palpite de alguém.

E isso, basicamente, é o eco da vida. Repete o que foi dito para repetir. Essa é uma função simples, mas vital. Sem eco, não seríamos capazes de obter resultados visíveis a partir de scripts shell, por exemplo.

Embora não seja carregado com uma infinidade de sinos e assobios, há uma boa chance de que o eco tenha ocorrido. alguns recursos que você não conhecia ou que você tinha esquecido.

eco?eco!

A maioria dos sistemas Linux fornece duas versões do eco.O shell Bash tem seu próprio eco embutido e também existe uma versão executável binária do eco.

Podemos ver as duas versões diferentes usando os seguintes comandos:

 tipo eco 

 onde é eco 

O comando type diz-nos se o comando que passamos para ele como argumento éum shell embutido, um executável binário, um alias ou uma função. Ele nos informa que o eco é um shell embutido.

Assim que encontra uma resposta, o tipo para de procurar outras correspondências. Portanto, ele não nos diz se existem outros comandos com o mesmo nome presentes no sistema. Mas nos diz qual deles encontra primeiro.E esse é o que será usado por padrão quando emitirmos esse comando.

O comando whereis procura o executável binário, o código-fonte e a página de manual do comando que passamos a ele comoseu parâmetro de linha de comando. Ele não procura por componentes internos do shell, porque eles não têm um executável binário separado. Eles são parte integrante do executável Bash.

O comando whereis relata que echo é um executável binário localizado no diretório / bin.

Para usar essa versão do echovocê precisaria chamá-lo explicitamente, fornecendo o caminho para o executável na linha de comando:

 / bin / echo --version 

O shell embutido não sabe qual é o argumento da linha de comando --version, apenas o repete na janela do terminal:

 echo --version 

Os exemplos mostrados aqui usam a versão padrão do eco, no shell Bash.

Gravando texto no terminal

Para escrever uma string simplesde texto na janela do terminal, digite echo e a string que você deseja exibir:

 echo Meu nome é Dave. 

Oo texto é repetido para nós. Mas, ao experimentar, você logo descobrirá que as coisas podem ficar um pouco mais complicadas. Veja este exemplo:

 echo Meu nome é Dave e sou um nerd. 

A janela do terminal exibe um >assine e fica lá, esperando. Ctrl + C retornará você ao prompt de comando.O que aconteceu lá?

A citação simples ou apóstrofo na palavra "eu" ’ m ”eco confuso. Ele interpretou essa citação única como o início de uma seção de texto citada. Como ele não detectou uma citação única de fechamento, o eco estava esperando por mais informações. Esperava que mais informações incluíssem as aspas simples que estavam aguardando.

Para incluir uma aspas simples em uma sequência, a solução mais simples é envolver a sequência inteira entre aspas duplas:

 echo "Meu nome é Dave e sou um nerd." 

Envolvendo seu texto entre aspas duplas é um bom conselho geral. Nos scripts, delimita claramente os parâmetros que você está passando para ecoar. Isso torna os scripts de leitura e depuração muito mais fáceis.

E se você quiser incluir um caractere de aspas duplas na sua sequência de texto?Isso é fácil, basta colocar uma barra invertida \ na frente da aspas duplas (sem espaço entre elas).

 echo "Meu nome é Dave e sou um" nerd "." 

Isso envolve a palavra "nerd" # 8201;entre aspas duplas para nós. Em breve, veremos mais desses caracteres com escape de barra invertida.

Usando variáveis ​​com eco

Até agora, escrevemos texto predefinido na janela do terminal. Podemos usar variáveis ​​com eco para produzir uma saída mais dinâmica e com valores inseridos nela pelo shell. Podemos definir uma variável simples com este comando:

 my_name = "Dave" 

Uma variável chamada my_name foi criada. Foi atribuído o valor do texto "Dave". ”Podemos usar o nome da variável nas strings que passamos para ecoar, e o valor da variável será gravado na janela do terminal. Você deve colocar um cifrão $ na frente do nome da variável para que o eco saiba que é uma variável.

Há uma ressalva. Se você enrolou sua corda em aspas simples, o eco tratará tudo literalmente. Para exibir o valor da variável, e não o nome da variável, use aspas duplas.

 echo 'Meu nome é $ my_name' 

 echo "Meu nome é $ my_name "

De certa forma, vale a pena repetir:

  • Usar aspas simples resulta no textosendo gravado na janela do terminal de maneira literal.
  • O uso de aspas duplas resulta na interpretação da variável — também chamada expansão de variável — e o valor é gravado na janela do terminal.

RELACIONADO: Como trabalhar com variáveis ​​no Bash

Usando comandos com eco

Podemos usar um comando com eco e incorporar sua saída na stringque está gravado na janela do terminal. Devemos usar o cifrão $ como se o comando fosse uma variável e agrupar todo o comando entre parênteses.

Vamos usar o comando date. Uma dica é usar o comando por conta própria antes de começar a usá-lo com eco. Dessa forma, se houver algo errado com a sintaxe do seu comando, você o identifica e o corrige antes de incluí-lo no comando echo. Então, se o comando echo não fizer o que você espera, você saberá que o problema deve estar na sintaxe do eco, porque você já provou a sintaxe do comando.

Então, tente isso na janela do terminal:

 date +% D 

E, satisfeitos que estamosobtendo o que esperamos do comando date, nós o integraremos em um comando echo:

 echo "A data de hoje é: $ (date +% D)" 

Observe que o comando está entre parênteses e o cifrão $ está imediatamente antes do primeiro parêntese.

Formatando texto com eco

The -eA opção (ativar escapes de barra invertida) permite usar alguns caracteres de escape de barra invertida para alterar o layout do texto. Estes são os caracteres com escape de barra invertida que podemos usar:

  • \ a: Alert (historicamente conhecido como BEL). Isso gera o som de alerta padrão.
  • \ b: Grava um caractere de backspace.
  • \ c: Abandona qualquer saída posterior.
  • \ e: Grava uma fugacaractere.
  • \ f: grava um caractere de feed de formulário.
  • \ n: grava uma nova linha.
  • \ r: grava um retorno de carro.
  • \ t: grava uma guia horizontal.
  • \ v: grava uma guia vertical.
  • \\: grava um caractere de barra invertida.

Vamos usar alguns deles e ver o que eles fazem.

 echo -e "Esta é uma longa linha de texto \ nsplit em três linhas \ ncom \ ttabs \ton \ tthe \ tthird \ tline "

O texto é dividido em uma nova linha onde usamos os \ n caracteres e uma guia é inserida onde #8217; usei os caracteres \ t.

 echo -e "Aqui \ vare \ vvertical \ vtabs" 

Como o \ nPara novos caracteres de linha, uma guia vertical \ v move o texto para a linha abaixo. Mas, diferentemente dos \ n caracteres da nova linha, a guia vertical \ v não inicia a nova linha na coluna zero. Ele usa a coluna atual.

Os caracteres de backspace \ b movem o cursor para trás um caractere. Se houver mais texto a ser gravado no terminal, esse texto substituirá o caractere anterior.

 echo -e "123 \ b4" 

O “ 3 ”é sobrescrito pelo “ 4 ”.

O caractere de retorno de carro faz com que o eco retorne ao início da linha atual e escreva qualquer texto adicional da coluna zero.

 eco -e "123 \ r456" 

O “ 123 ”os caracteres são substituídos pelo “ 456 ”caracteres.

O caractere \ a alerta produzirá um sinal sonoro audível. ”Ele usa o som de alerta padrão para o seu tema atual.

 echo -e "Dê um bipe \ a" 

O -n (nenhuma opção de nova linha) não é uma sequência com escape de barra invertida, mas afeta os cosméticos do layout do texto, portanto, discutiremos aqui. Impede que o eco adicione uma nova linha ao final do texto.O prompt de comando aparece diretamente após o texto gravado na janela do terminal.

 echo -n "nenhuma nova linha final" 

Usandoeco com arquivos e diretórios

Você pode usar o eco como uma espécie de versão pobre do ls. Suas opções são poucas e distantes quando você usa eco assim. Se você precisar de algum tipo de fidelidade ou controle fino, será melhor usar ls e sua legião de opções.

Este comando lista todos os arquivos e diretórios no diretório atual:

 echo * 

Este comando lista todos os arquivos e diretórios no diretório atual cujo nome começa com “ D ”:

 echo D * 

Este comando lista todos os “ . desktop ”arquivos no diretório atual:

 eco * . desktop 

Sim. Isso não está tocando para ecoar os pontos fortes de. Use ls.

Gravando em arquivos com eco

Podemos redirecionar a saída do eco e criar arquivos de texto ou gravar em arquivos de texto existentes.

Seuse o >operador de redirecionamento, o arquivo será criado se ele não existir. Se o arquivo existir, a saída do eco será adicionada no início do arquivo, substituindo qualquer conteúdo anterior.

Se usarmos o > >operador de redirecionamento, o arquivo será criado se ele não existir.A saída do eco é adicionada ao final do arquivo e não substitui nenhum conteúdo existente do arquivo.

 echo "Criando um novo arquivo.">sample. txt 

 echo "Adicionando ao arquivo."> >sample. txt 

 cat sample. txt 

Um novo arquivo é criado pelo primeiro comando e o texto é inserido nele.O segundo comando adiciona uma linha de texto na parte inferior do arquivo.O comando cat exibe o conteúdo do arquivo na janela do terminal.

E, é claro, podemos incluir variáveis ​​para adicionar algumas informações úteis ao nosso arquivo. Se o arquivo for um arquivo de log, convém adicionar um carimbo de data / hora. Podemos fazer isso com o próximo comando.

Observe as aspas simples ao redor dos parâmetros do comando date. Eles impedem que o espaço entre os parâmetros seja interpretado como o final da lista de parâmetros. Eles garantem que os parâmetros sejam passados ​​para a data corretamente.

 echo "Arquivo de log iniciado: $ (date + '% D% T')" >logfile. txt 

 cat logfile. txt 

Nosso arquivo de log é criado para nós e o cat mostra que o carimbo de data e hora foram adicionados.

RELACIONADOS: O que são stdin, stdout e stderr no Linux?

Esse é o eco do repertório do repertório

Um simplescomando, mas indispensável. Se não existisse, teríamos que inventá-lo.

As travessuras de Zeus fizeram algum bem, afinal de contas.

Via: How to Geek

Veja Também:

Nenhum comentário