Como usar o comando Echo no Linux

O eco O comando é perfeito para escrever texto formatado na janela do terminal. E não precisa ser um 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 casar com belas ninfas. Em uma viagem, ele disse a uma ninfa da montanha chamada Eco 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, é ecoMuito na vida. Ele repete o que foi dito para repetir. Essa é uma função simples, mas vital. Sem eco , não seríamos capazes de obter uma saída visível de scripts de shell, por exemplo.

Embora não esteja sobrecarregado com uma infinidade de sinos e assobios, há uma boa chance de que eco tem alguns recursos que você não conhecia ou que esqueceu.

eco? eco!

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

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

digite eco
onde está eco

O modelo comando nos diz se o comando que passamos para ele como seu argumento é um shell embutido, um executável binário, um apelido ou uma função. Relata para nós que eco é um shell embutido.

Assim que encontrar uma resposta, modelo pára 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 encontrar primeiro. E é aquele que será usado por padrão quando emitirmos esse comando.

O Onde é O comando procura o executável binário, o código-fonte e a página do manual do comando que passamos a 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 Onde é relatórios de comando que eco é um executável binário localizado no / bin diretório.

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

/ bin / echo --version

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

echo --version

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

Escrevendo Texto no Terminal

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

echo Meu nome é Dave.

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

echo Meu nome é Dave e sou um geek.

A janela do terminal exibe um> assine 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 "Eu sou" confusa eco. Ele interpretou essa aspa simples como o início de uma seção de texto citada. Porque não detectou uma aspa única de fechamento,eco estava esperando por mais informações. Ele esperava que outras entradas incluíssem a aspa simples que estava faltando.

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

echo "Meu nome é Dave e eu sou um geek."

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

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

echo "Meu nome é Dave e eu sou um \" geek. \ ""

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

Usando variáveis ​​com eco

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

meu_nome = "Dave"

Uma variável chamada o meu nome foi criado. Foi atribuído o valor do texto “Dave”. Podemos usar o nome da variável nas strings que passamos para eco , e o valor da variável será escrito na janela do terminal. Você deve colocar um cifrão $ na frente do nome da variável para permitir eco sei que é uma variável.

Existe uma ressalva. Se você enrolou sua string em aspas simples eco tratará tudo literalmente. Para ter a variável valor exibido, e não o nome da variável, use aspas duplas.

echo 'Meu nome é $ my_name'
echo "Meu nome é $ my_name"

Com certa propriedade, vale a pena repetir:

  • Usando solteiro aspas resultam no texto sendo escrito na janela do terminal em um literal moda.
  • UsandoDuplo aspas resultam na variável sendo interpretada - também chamada de 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 incorpore sua saída na string que é gravada na janela do terminal. Devemos usar o cifrão $ como se o comando fosse uma variável, coloque todo o comando entre parênteses.

Vamos usar o comando date. Uma dica é usar o comando sozinho 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 corrige antes de incluí-lo no eco comando. Então, se o eco comando não faz o que você espera, você saberá que o problema deve ser com o eco sintaxe porque você já provou a sintaxe do comando.

Então, tente isso na janela do terminal:

data +% D

E, satisfeitos por estarmos recebendo o que esperamos do comando de data, vamos integrá-lo a um eco comando:

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

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

Formatando texto com eco

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:

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

Vamos usar alguns deles e ver o que fazem.

echo -e "Esta é uma longa linha de texto \ ndividida em três linhas \ ncom \ ttabs \ ton \ ta \ t terceira \ tlinha"

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

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

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

O \ b os 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 causas do caractere de retorno de carroeco para retornar ao início da linha atual e escrever qualquer texto adicional da coluna zero.

echo -e "123 \ r456"

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

O \uma caráter de alerta produzirá um "bipe" audível. Ele usa o som de alerta padrão para o seu tema atual.

echo -e "Faça um bipe \ a"

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, então vamos discutir isso aqui Previne eco desde adicionar uma nova linha ao final do texto. O prompt de comando aparece diretamente após o texto escrito na janela do terminal.

echo -n "sem nova linha final"

Usando echo com arquivos e diretórios

Você pode usar eco como uma espécie de versão do homem pobre de ls. Suas opções são poucas e distantes entre si quando você usa eco como isso. Se você precisa 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 *

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

echo * .desktop

Sim. Isso não é jogar para ecoPontos fortes. Usar ls.

Escrevendo em arquivos com eco

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

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

Se usarmos o >> operador de redirecionamento, o arquivo é criado se não existir. A saída de eco é adicionado 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 ao final do arquivo. O gato comando exibe o conteúdo do arquivo para a 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 adicionar um carimbo de data / hora a ele. Podemos fazer isso com o próximo comando.

Observe as aspas simples em torno dos parâmetros para o data comando. 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 ​​paradata corretamente.

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

Nosso arquivo de log é criado para nós e gato 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.

Afinal, as travessuras de Zeus fizeram bem.


$config[zx-auto] not found$config[zx-overlay] not found