Não é o comportamento echo
. É um comportamento bash. Quando você usa echo $x
form o bash recebe o seguinte comando para processar (tratar ␣
como espaço):
echo␣␣hello
Em seguida, esse comando é tokenizado e o bash recebe dois tokens: echo
e hello
, portanto, a saída é apenas hello
Quando você usa o formulário echo "$x"
, o bash tem o seguinte na entrada do tokenizer:
echo␣"␣hello"
assim, ele tem dois tokens echo
e ␣hello
, então a saída é diferente.