a echo
O comando é perfeito para digitar 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.
Echo repete o que você diz a ele para repetir
Zeus gostava de deixar o Monte Olimpo para se juntar a lindas ninfas. Em uma viagem, disse a uma ninfa da montanha chamada Echo que persegue sua esposa, Hera, se ela o seguisse. Hera veio à procura de Zeus, e a Echo fez o possível para manter Hera conversando. Para terminar, Hera perdeu a paciência e amaldiçoou o pobre Echo a repetir apenas as últimas palavras que outra pessoa havia dito. O que Hera fez com Zeus quando ela o alcançou é uma incógnita.
Elenco, praticamente, isto é echo
muito na vida. Repetir o que tem sido dito para repetir. Essa é uma função simples, mas vital. Sem echo
, não conseguimos resultados visíveis de scripts de shell, como um exemplo.
Embora não esteja sobrecarregado com uma infinidade de sinos e assobios, é muito provável que echo
tem alguns recursos que você não conhecia ou esqueceu.
¿Eco? ¡Eco!
A maioria dos sistemas Linux oferece duas versões de echo
. a Bash shell Tem seu próprio echo
integrado nele, e há uma versão executável binária de echo
assim como.
Podemos ver as duas versões diferentes usando os seguintes comandos:
digite eco
where is echo
a type
o comando nos diz se o comando que passamos como seu argumento é um shell embutido, um executável binário, um alias ou uma função. Nos informa que echo
é um shell embutido.
Assim que eu encontrar uma resposta, type
pare de procurar mais combinações. Por isso, 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.
a whereis
comando encontra o executável binário, o código-fonte e a página de manual do comando que passamos para você como sua linha de comando parâmetro. Ele não procura por itens de shell internos porque eles não têm um executável binário separado. Eles são parte integrante do executável Bash.
a whereis
relatórios de comando que echo
é um executável binário localizado no /bin
diretório.
Para usar essa versão do echo
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 --version
O argumento da linha de comando é, apenas repita na janela do terminal:
echo --version
Todos os exemplos mostrados aqui usam a versão padrão do echo
, no shell bash.
Escreva o texto no terminal
Para escrever uma string de texto simples na janela do terminal, escriba echo
e a string que você deseja exibir:
echo Meu nome é Dave.
O texto é repetido para nós. Mas conforme você experimenta, você 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 sente-se lá, esperando. Ctrl + C o retornará ao prompt de comando. O que aconteceu lá?
A única marca de cotação ou apóstrofo da palavra “Sou” confuso echo
. Interpretou aquela aspa simples como o início de uma seção citada do texto. Porque não detectou uma única citação de fechamento, echo
Eu estava esperando por mais informações. Eu esperava que a entrada adicional incluísse a aspa simples ausente que eu esperava.
Para incluir uma aspa simples em uma string, a resposta mais simples é envolver toda a string entre aspas duplas:
eco "Meu nome é Dave e sou um geek."
Colocar o texto entre aspas duplas é um bom conselho geral. Em scripts, delimita claramente os parâmetros para os quais você está passando echo
. Isso torna a leitura e depuração dos scripts muito mais fácil.
E se você quiser incluir um caractere de aspas duplas em sua string de texto? Isso é fácil, apenas coloque uma barra invertida na frente das aspas duplas (sem espaços entre eles).
eco "Meu nome é Dave e eu sou um "nerd.""
Isso envolve a palavra “geek” em cotações duplas para nós. Veremos mais desses barra invertida escapou personagens em resumo.
Use variáveis com eco
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 pelo shell. Podemos definir uma variável simples com este comando:
meu_nome ="Dave"
Uma variável chamada my_name
Foi criado. Foi atribuído 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 $
na frente do nome da variável para sair echo
Eu sei que é uma variável.
Há uma advertência. Se você envolveu sua string entre aspas simples echo
tratará tudo literalmente. Tem a variável valor mostrando, e não ele Nome da variável, use aspas duplas.
echo 'Meu nome é $ my_name'
eco "Meu nome é $ my_name"
Com toda a razão, é importante repetir:
- Usando solteiro as aspas resultam no texto sendo digitado na janela do terminal em um literal Moda.
- Usando Duplo as aspas resultam na interpretação da variável, também chamada de expansão variável, e a valor está escrito na janela do terminal.
RELACIONADO: Como trabalhar com variáveis no Bash
Use comandos com eco
Podemos usar um comando com echo
e embutir sua saída na string que está escrita na janela do terminal. Devemos usar o cifrão $
como se o comando fosse uma variável, e envolva 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
. Assim, se houver algum problema com sua sintaxe de comando, identifica e corrige antes de incorporá-lo ao echo
comando. Então, se ele echo
comando não faz o que você espera, Você saberá que o problema deve ser com o echo
sintaxe porque você já testou a sintaxe do comando.
Então, tente isso na janela do terminal:
data +% D
E, satisfeito por estarmos recebendo o que esperamos do comando de data, vamos integrá-lo em um echo
comando:
eco "A data de hoje é: $(data +% D)"
Observe que o comando está entre parênteses e o cifrão $
é imediatamente antes do primeiro parêntese.
Formatação de texto eco
a -e
Opção (habilitar escapes de barra invertida) nos permite usar alguns caracteres de escape de barra invertida para mudar o layout do texto. Estes são os caracteres de escape de barra invertida que podemos usar:
- uma: Alerta (historicamente conhecido como BEL). Isso gera o som de alerta padrão.
- B: Escreva um caractere de retrocesso.
- C: Desista de quaisquer passeios adicionais.
- mim: Escreva um caractere de escape.
- F: Escreva um caractere de feed de página.
- Norte: Escreva uma nova linha.
- r: Escreva um retorno de carro.
- t: Escreva uma guia horizontal.
- v: Escreva uma guia vertical.
- : Digite um caractere de barra invertida.
Vamos usar alguns deles e ver o que fazem.
echo -e "Esta é uma longa linha de texto dividida em três linhas ncomttabst na terceira linha"
O texto está dividido em uma nova linha onde usamos o n
caracteres e uma guia é inserida onde usamos o t
personagens.
echo -e "Herevarevverticalvtabs"
Como ele n
caracteres de nova linha, uma flange vertical v
mova o texto para a linha inferior. Mas, diferente n
caracteres de nova linha, a v
a guia vertical não inicia uma nova linha na coluna zero. Use a coluna atual.
a b
Os caracteres de retrocesso movem o cursor um caractere para trás. Se houver mais texto para escrever no terminal, aquele texto irá sobrescrever o caractere anterior.
echo -e "123b4"
o “3” é substituído pelo “4”.
a r
Causas do caractere de retorno de carro echo
para voltar ao início da linha atual e digitar qualquer texto adicional da coluna zero.
echo -e "123r456"
Caracteres “123” são substituídos com os personagens “456”.
a a
O personagem de alerta produzirá um “assobiar” audível. Use o som de alerta padrão para o seu tema atual.
echo -e "Faça um bleepa"
a -n
Opção (nenhuma linha nova) não é uma sequência de escape de barra invertida, mas afeta a aparência do layout do texto, então vamos discutir isso aqui. Evitar echo
desde adicionar uma nova linha ao final do texto. O prompt de comando aparece logo após o texto que você digita na janela do terminal.
echo -n "sem nova linha final"
Use echo com arquivos e diretórios
Você pode usar echo
como uma espécie de versão pobre de ls
. Suas opções são poucas e distantes entre si quando você usa echo
assim. Se você precisa de algum tipo de fidelidade ou controle fino, é melhor você usar ls
e sua legião de opções.
Este comando lista todos os arquivos e diretórios no diretório atual:
eco *
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 “.Área de trabalho” no diretório atual:
echo * .desktop
sim. Isso não está jogando echo
forças. Usar ls
.
Grave em arquivos com eco
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 é criado se não existir. Se o arquivo existir, a saída de echo
é adicionado ao 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 echo
é anexado ao final do arquivo e não sobrescreve qualquer conteúdo existente do arquivo.
eco "Criando um novo arquivo." > sample.txt
eco "Adicionando ao arquivo." >> sample.txt
cat sample.txt
O primeiro comando cria um novo arquivo e insere texto nele. O segundo comando adiciona uma linha de texto ao final do arquivo. a cat
O comando exibe o conteúdo do arquivo na janela do terminal.
E, desde já, podemos incluir variáveis para adicionar informações úteis ao nosso arquivo. Se o arquivo for um arquivo de log, podemos querer que um timestamp seja adicionado a ele. Podemos fazer isso com o seguinte comando.
Observe as aspas simples em torno dos parâmetros para o date
comando. Eles evitam 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 date
corretamente.
eco "Arquivo de log iniciado: $(data + '% D% T')" > logfile.txt
cat logfile.txt
Nosso arquivo de log é criado para nós e cat
nos mostra que tanto o carimbo de data quanto o carimbo de data / hora foram adicionados a ele.
RELACIONADO: O que são stdin, stdout y stderr en Linux?
Esse é o repertório do eco
Um comando simples, mas indispensável. Se eu não existir, teríamos que inventar isso.
As palhaçadas de Zeus fizeram algo certo, depois de tudo.
setTimeout(função(){
!função(f,b,e,v,n,t,s)
{E se(f.fbq)Retorna;n = f.fbq = função(){n.callMethod?
n.callMethod.apply(n,argumentos):n.queue.push(argumentos)};
E se(!f._fbq)f._fbq = n;n.push = n;n.loaded =!0;n.version = ’2.0′;
n.queue =[];t = b.createElement(e);t.async =!0;
t.src = v;s = b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, documento,'roteiro',
‘Https://connect.facebook.net/en_US/fbevents.js ’);
fbq('iniciar', ‘335401813750447’);
fbq('acompanhar', ‘PageView’);
},3000);