O problema é que echo interpreta -n como argumento. Na implementação bash padrão, isso significa (de help echo ):
-n do not append a newline
Existem várias maneiras de contornar isso:
-
Transforme em algo que não é uma opção, incluindo outro personagem. Por exemplo, diga a
echopara não imprimir uma nova linha com-ne, em seguida, diga-a para interpretar vazamentos de barra invertida com-ee adicione a nova linha explicitamente.$ echo -ne '-n\n' -n -
Como alternativa, basta incluir um espaço
$ echo " -n" -nIsso, no entanto, adiciona um espaço que você provavelmente não deseja.
-
Use um caractere não imprimível antes dele. Aqui. Estou usando o backspace (
\b)$ echo -e "\b-n" -nIsso também adiciona um caractere extra que você provavelmente não deseja.
-
Use truques
$ echo n- | rev -nO comando
revsimplesmente imprime sua saída invertida. -
Use a ferramenta certa para o trabalho
$ printf -- '-n\n' -n