Creative Saplings

Como usar o comando Echo no Linux

Outubro 19, 2020
No Comments
  • Dave McKay

    @TheGurkha

  • 29 de outubro de 2019, 8h00 EDT
Fatmawati Achmad Zaenuri /

O echo o comando é perfeito para escrever texto formatado na janela do terminal. E não precisa ser texto estático. Ele 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.

Echo repete o que você diz para repetir

Zeus gostava de deixar o Monte Olimpo para se associar com belas ninfas. Em uma viagem, ele disse a uma ninfa da montanha chamada Echo para atacar sua esposa, Hera, se ela o seguisse. Hera veio procurar por Zeus, e Echo fez tudo que podia para manter Hera conversando. Finalmente, Hera perdeu a paciência e amaldiçoou a pobre Echo para que ela apenas repetisse as últimas palavras que outra pessoa havia dito. O que Hera fez com Zeus quando o alcançou é uma incógnita.

E isso, basicamente, é o que echo tem na vida. Ele repete o que foi dito para repetir. Essa é uma função simples, mas vital. Sem echo, não seríamos capazes de obter saída visível de scripts de shell, por exemplo.

Publicidade

Embora não carregada com uma infinidade de sinos e assobios, há uma boa chance de que echo tenha alguns recursos que você não conhecia ou que você esqueceu.

echo? echo!

A maioria dos sistemas Linux oferece duas versões de echo. O shell Bash tem seu próprio echo integrado e também há uma versão executável binária de echo.

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

type echo
whereis echo

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

Anúncio

Assim que encontrar uma resposta, type para de procurar outras correspondências. Portanto, não nos diz se existem outros comandos com o mesmo nome presentes no sistema. Mas nos diz qual 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 do manual para o comando que passamos para ele como seu parâmetro de linha de comando. Ele não procura por builtins de 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 de echo, você precisa chamá-la explicitamente fornecendo o caminho para o executável na linha de comando:

/bin/echo --version
Anúncio

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

echo --version

Todos os exemplos mostrados aqui usam o padrão versão de echo, no shell Bash.

Gravando texto no terminal

Para escrever uma string simples de texto na janela do terminal , digite echo e a string que deseja exibir:

echo My name is Dave.

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

echo My name is Dave and I"m a geek.
Anúncio

A janela do terminal exibe um sinal > e senta lá, esperando. Ctrl + C o levará de volta ao prompt de comando. O que aconteceu lá?

A aspa simples ou apóstrofo na palavra “I’m” confused echo. Essa aspas simples é interpretada como o início de uma seção citada de texto. Como não detectou uma aspa simples de fechamento, echo estava esperando por mais entradas. Esperava que outras entradas incluíssem as aspas simples ausentes.

Para incluir uma aspa simples em uma string, a solução mais simples é envolver toda a string entre aspas duplas:

echo "My name is Dave and I"m a geek."

Empacotando seu texto em aspas duplas é um bom conselho geral. Em scripts, ele delimita claramente os parâmetros que você está passando para echo. Isso torna a leitura e depuração de scripts muito mais fácil.

Anúncio

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

echo "My name is Dave and I"m a \"geek.\""

Isso envolve a palavra “geek” entre aspas duplas para nós. Veremos mais desses caracteres com escape de barra invertida em breve.

Usando variáveis com echo

Até agora , estivemos escrevendo um texto predefinido na janela do terminal. Podemos usar variáveis com echo para produzir uma saída mais dinâmica e com valores inseridos para nós pelo shell. pode definir uma variável simples com este comando:

my_name="Dave"

Uma variável chamada my_name foi criada. Ela foi criada atribuiu o valor do texto “Dave”. Podemos usar o nome da variável nas strings que passamos para echo, e o valor da variável será escrito na janela do terminal. Você deve colocar um cifrão $ antes do nome da variável para permitir que echo saiba que é uma variável.

Publicidade

Há uma ressalva. Se você envolveu sua string entre aspas simples, echo tratará tudo literalmente. Para que o valor da variável seja exibido, e não o nome da variável, use aspas duplas.

echo "My name is $my_name"
echo "My name is $my_name"

Com certa propriedade, vale a pena repetir:

  • Usar aspas simples resulta no texto sendo escrito na janela do terminal de uma forma literal.
  • Usar aspas duplas resulta em a variável sendo interpretada – também chamada de expansão de variável – e o valor é escrito na janela do terminal.

RELACIONADO: Como trabalhar com variáveis no Bash

Usando comandos com echo

Podemos usar um comando com echo e incorporar sua saída na string que é escrita na janela do terminal. Devemos usar o cifrão $ como se o comando fosse uma variável e envolver todo o comando entre parênteses.

Vamos usar o comando de data . Uma dica é usar o comando sozinho antes de começar a usá-lo com echo. Dessa forma, se houver algo errado com a sintaxe do seu comando, você o identifica e 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 ser com a sintaxe echo porque você já provamos a sintaxe do comando.

Então, tente isso na janela do terminal:

date +%D

E, estamos satisfeitos que estamos obtendo o que esperamos do comando de data, iremos integrá-lo em um echo comando:

echo "Today"s date is: $(date +%D)"
Publicidade

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

Formatando texto com echo

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

Vamos usar alguns deles e ver o que fazem.

echo -e "This is a long line of text\nsplit across three lines\nwith\ttabs\ton\tthe\tthird\tline"

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

echo -e "Here\vare\vvertical\vtabs"
Publicidade

Como os \n caracteres de nova linha, uma guia vertical \v move o texto para a linha abaixo. Mas, ao contrário dos \n caracteres da nova linha, a \v guia vertical não inicia a nova linha na coluna zero. Ele usa a coluna atual.

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

echo -e "123\b4"

O “3” é substituído pelo ” 4 ”.

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

echo -e "123\r456"

Os caracteres “123” são substituídos pelos caracteres “456”.

Os \a caractere de alerta produzirá um “bipe” audível. Ele usa o som de alerta padrão para o seu tema atual.

echo -e "Make a bleep\a"
Publicidade

O -n A opção (sem nova linha) não é uma sequência com escape de barra invertida, mas afeta a aparência do layout do texto, por isso vamos discuti-la aqui. Ela evita que echo adicione uma nova linha no final do texto. O prompt de comando aparece diretamente após o texto que é escrito na janela do terminal.

echo -n "no final newline"

Usando echo com arquivos e diretórios

Você pode usar echo como uma classificação da versão do pobre de ls. Suas opções são poucas quando você usa echo dessa forma. Se você precisar de qualquer tipo de fidelidade ou controle fino, é 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*
Publicidade

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

echo *.desktop

Sim. Isso não está jogando com echo os pontos fortes. Use ls.

Gravando em arquivos com echo

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

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

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

echo "Creating a new file." > sample.txt
echo "Adding to the file." >> sample.txt
cat sample.txt
Anúncio

Um novo arquivo é criado pelo primeiro comando e o texto é inserido afim disso. O segundo comando adiciona uma linha de texto ao final 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, podemos querer ter um timestamp adicionado a ele. Podemos fazer isso com o próximo comando.

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

echo "Logfile started: $(date +"%D %T")" > logfile.txt
cat logfile.txt
Anúncio

Nosso arquivo de registro foi criado para nós e cat nos mostra que o carimbo de data e hora foram adicionados a ele.

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

Esse é o repertório da echo

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

As travessuras de Zeus fizeram bem, afinal.

Dave McKay Review, Dave McKay usou computadores pela primeira vez quando a fita de papel perfurada estava na moda, e ele tem programado desde então. Após mais de 30 anos no setor de TI, ele agora é jornalista de tecnologia em tempo integral. Durante sua carreira, ele trabalhou como programador freelance, gerente de uma equipe internacional de desenvolvimento de software, gerente de projetos de serviços de TI e, mais recentemente, como oficial de proteção de dados. Dave é um evangelista do Linux e defensor do código aberto. Leia a biografia completa “

Articles
Previous Post

Os 10 principais alimentos ricos em cobre que você deve incluir em sua dieta

Next Post

Escolha seus sabores

Deixe uma resposta Cancelar resposta

Artigos recentes

  • As melhores escolas de fotografia do mundo, 2020
  • Cidadãos soberanos levam sua filosofia antigovernamental para as estradas
  • Guia de custos de reparo de estuque
  • Muckrakers (Português)
  • Oncologia de precisão

Arquivo

  • Fevereiro 2021
  • Janeiro 2021
  • Dezembro 2020
  • Novembro 2020
  • Outubro 2020
  • Setembro 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.