EmInformática,echo é umcomando disponível noUnix que apresenta um texto natela de um terminal decomputador. É um comando utilizado emscripts para exibir mensagens na tela ou em um arquivo. O comando também está presente noDOS, noLinux, noMac OS, noOS/2 e noWindows.[1]
$echo"Este é um teste"Esteéumteste$echoEsteémaisumteste>teste.txt$catteste.txtEsteémaisumteste
Alguns terminais podem apresentar cores, utilizando sequências de controle SGR:
FGRED=`echo"\033[31m"`FGCYAN=`echo"\033[36m"`BGRED=`echo"\033[41m"`FGBLUE=`echo"\033[35m"`BGGREEN=`echo"\033[42m"`NORMAL=`echo"\033[m"`apósasdefinições,podemosescrever:echo"${FGBLUE} Texto em azul${NORMAL}"echo"Texto normal"echo"${BGRED} Fundo em vermelho"echo"${BGGREEN} Fundo em verde e de volta para o normal${NORMAL}"
Em sistemas derivados do UNIX, como o Linux, o comando echo pode receber parâmetros. Por exemplo, no Linux, a opção-e indica que as sequências de comando devem ser processadas. O comandoprintf é um comando alternativo, que sempre processa as sequências de controle recebidas. Na especificaçãoPOSIX, o comando echo não recebe parâmetros.[2]
É comum utilizar oecho em scripts ativados pelocron.
echo"Seu script está sendo executado agora">>aviso.txt
OLinux possui umdiretório específico para armazenamento delogs, cujo caminho é:/var/log/
O comandoecho pode ser implementado nalinguagem C em poucas linhas de código:
#include<stdlib.h>#include<stdio.h>intmain(intargc,char*argv[]){inti;for(i=1;i<argc-1;i++){(void)printf("%s%s",argv[i]," ");}(void)printf("%s%s",argv[argc-1],"\n");returnEXIT_SUCCESS;}
Linguagens de script também podem simular o comandoecho de maneira muito simples:
$perl-e'print join " ", @ARGV; print "\n"'Istoéumteste.Istoéumteste.$python-c"import sys; print ' '.join(sys.argv[1:])"Istoéumteste.Istoéumteste.
Combinados os comandos echo etee, com esses comandos, é possível criar um arquivo executável doDOS ouWindows com a simulação de vírus do Arquivo de Teste EICAR e multiplicá-lo em vários executáveis com nomes diferentes.
$echo'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*'|teeEICAR.EXEEICAR1.EXEEICAR2.EXEEICAR3.EXEEICAR4.EXEEICAR5.EXEEICAR6.EXEEICAR7.EXEEICAR8.EXEEICAR9.EXEEICAR0.EXEX5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*