Respuestas:
De la misma manera que no puede ejecutarse ls "*.txt"
en un shell normal, tampoco puede ejecutarlo en un subshell. Cuando pones *.txt
comillas, hiciste una ls
búsqueda de un archivo literal llamado *.txt
cuándo deberías estar haciendo esto:
$ echo $(ls *.txt) # => file.txt otherfile.txt
Una mejor manera de hacer esto es no usarlo ls
en absoluto.
$ echo *.txt # => file.txt otherfile.txt
ls
.
ls -l "*.txt"
. O al menos yo puedo. No lo hago a menudo, pero cuando lo hago, generalmente me dice que no pudo encontrar * .txt ...
bash
y similareszsh
) no son lo mismo que las comillas simples. Por ejemplo, la expansión del parámetro ($foo
) se realiza entre comillas dobles, pero no entre comillas simples.