echo -e "\t"
passa \t
para echo
porque a barra invertida é especial entre aspas duplas em bash
. Ele serve como um operador escapando (citando). Em \
, ele escapa sozinho.
Você pode fazer:
echo -e "\\t"
para echo
ser passado \t
( echo -e "\\t"
também seria), ou você poderia usar aspas simples nas quais \
não é especial:
echo -e '\t'
Agora, echo
é um comando muito pouco suportável . Mesmo em bash
, seu comportamento pode depender do ambiente. Eu aconselharia evitá-lo e usar printf
, com o qual você pode fazer:
printf 'test\n\test\n'
Ou até mesmo decidir quais partes passam por essas expansões de seqüência de escape:
printf 'test\n%s\n' '\test'
Ou:
printf '%b%s\n' 'test\n' '\test'
%b
entende as mesmas seqüências de escape que echo
(alguns echo
s), enquanto o primeiro argumento para printf
, o formato, também entende seqüências, mas de maneira ligeiramente diferente de echo
( mais parecido com o que é feito em outros idiomas). Em qualquer caso, \n
é entendido por ambos.