Tenho o seguinte exemplo:
$ a="$(ls)"
$ echo $a
backups cache crash lib local lock log mail opt run snap spool tmp
$
$ echo "$a"
backups
cache
crash
lib
local
lock
log
mail
opt
run
snap
spool
tmp
Agora com printf
:
$ printf $a
backups
$
$ printf "$a"
backups
cache
crash
lib
local
lock
log
mail
opt
run
snap
spool
tmp
Por que a saída é tão diferente? O que as citações fazem nesta situação? Alguém poderia explicar o que está acontecendo aqui?
PS Encontrou alguma explicação sobre o ls
comportamento:
A saída de ls tem novas linhas, mas é exibida em uma única linha. Por quê?
https://superuser.com/questions/424246/what-is-the-magic-separator-between-filenames-in-ls-output
http://mywiki.wooledge.org/ParsingLs
Os caracteres de nova linha podem ser verificados desta forma :
ls | od -c