echo (comando) - echo (command)

eco
Sleepunix.png
O echocomando no Unix
Autor (es) original (is) Douglas McIlroy
( AT&T Bell Laboratories )
Desenvolvedor (s) Vários open-source e comerciais desenvolvedores
Sistema operacional Multics , Unix , Unix-like , V , Plan 9 , Inferno , FLEX , TRIPOS , AmigaDOS , Z80-RIO , OS-9 , DOS , MSX-DOS , Panos , FlexOS , SISNE plus , OS / 2 , Windows , ReactOS , MPE / iX , KolibriOS , SymbOS
Plataforma Plataforma cruzada
Modelo Comando

Na computação , echoé um comando que produz as strings que são passadas para ele como argumentos . É um comando disponível em vários shells de sistema operacional e normalmente usado em scripts de shell e arquivos em lote para enviar texto de status para a tela ou um arquivo de computador , ou como uma parte de origem de um pipeline .

Implementações

O comando está disponível nos seguintes sistemas operacionais:

Muitos shells, incluindo todos os shells semelhantes a Bourne (como Bash ou zsh ) e Csh , bem como COMMAND.COM e cmd.exe, são implementados echocomo um comando interno .

O comando também está disponível no shell EFI .

História

echocomeçou no Multics . Depois de ter sido programado em C por Doug McIlroy como um "exercício de dedo" e provado ser útil, ele se tornou parte da Versão 2 do Unix . echo -nna Versão 7 substituído prompt, (que se comportou como, echomas sem encerrar sua saída com um delimitador de linha).

No PWB / UNIX e posteriormente no Unix System III , echocomeçou a expandir as sequências de escape C , como \ncom a notável diferença de que as sequências de escape octal eram expressas como em \0ooovez de \oooC.

Oitava Edição Unix echo só fez a expansão de escape quando passou uma -eopção, e esse comportamento foi copiado por algumas outras implementações, como o echocomando embutido de Bash ou zsh e GNU echo.

No MS-DOS , o comando está disponível nas versões 2 e posteriores.

Hoje em dia, echoexistem várias implementações incompatíveis de em diferentes sistemas operacionais (muitas vezes vários no mesmo sistema), alguns deles expandindo sequências de escape por padrão, alguns deles não, alguns deles aceitando opções (a lista varia com as implementações), alguns deles não.

A especificação POSIX de echodeixa o comportamento não especificado se o primeiro argumento for -nou qualquer argumento contiver caracteres de barra invertida, enquanto a especificação Unix (opção XSI em POSIX) exige a expansão de (algumas) sequências e não permite o processamento de qualquer opção. Na prática, muitas echoimplementações não são compatíveis com o ambiente padrão.

Por causa dessas variações de comportamento, echoé considerado um comando não portátil em sistemas semelhantes ao Unix e o printfcomando (quando disponível, introduzido pela Nona Edição Unix) é o preferido.

Exemplos de uso

C:\>echo Hello world
Hello world

Usando sequências SGR de código de escape ANSI , terminais compatíveis podem imprimir texto colorido.

Usando uma implementação do estilo UNIX System III :

BGRED=`echo "\033[41m"`
FGBLUE=`echo "\033[35m"`
BGGREEN=`echo "\033[42m"`

NORMAL=`echo "\033[m"`

Ou uma implementação de estilo Unix Versão 8 (como Bash quando não está no modo de conformidade com Unix):

BGRED=`echo -e "\033[41m"`
FGBLUE=`echo -e "\033[35m"`
BGGREEN=`echo -e "\033[42m"`

NORMAL=`echo -e "\033[m"`

e depois:

echo "${FGBLUE} Text in blue ${NORMAL}"
echo "Text normal"
echo "${BGRED} Background in red"
echo "${BGGREEN} Background in Green and back to Normal ${NORMAL}"

Portável com printf:

BGRED=`printf '\33[41m'`
NORMAL=`printf '\33[m'`
printf '%s\n' "${BGRED}Text on red background${NORMAL}"

Veja também

Referências

Leitura adicional

links externos