No bash.
O primeiro exemplo lst=(
ls $ 1 )
cria uma matriz de valores no var lst.
Como esse código mostrará:
lst=('ls .'); printf '%s\n' "${lst[@]}"
O segundo exemplo lst=$(ls $1)
executa ls $1
, mas apenas a saída (concatenada como uma cadeia longa) é atribuída à var lst
.
Talvez o que você quisesse comparar fosse:
lst=( 'ls $1')
lst=($(ls $1))
E, de fato, '...'
é exatamente equivalente a $(...)
.
E ambos os comandos criarão uma matriz de valores em lst