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, é eco
Muito 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 eco
Pontos 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.