echo
imprime seus argumentos e ignora stdin
. <<EOF ... EOF
(um documento aqui / heredoc ) escreve para stdin
. Como você percebeu, cat
lê stdin
(e escreve), então lê o heredoc. Como sa-learn
lê a partir de stdin
, ele também lê o heredoc
.