Respostas:
Da mesma forma que você não pode executar ls "*.txt"
em um shell normal, também não pode executá-lo em um subshell. Ao colocar *.txt
aspas, você ls
pesquisou um arquivo literal chamado *.txt
quando deveria fazer o seguinte:
$ echo $(ls *.txt) # => file.txt otherfile.txt
A melhor maneira de fazer isso é não usar ls
nada.
$ echo *.txt # => file.txt otherfile.txt
ls
.
ls -l "*.txt"
. Ou pelo menos eu posso. Eu faço isso muitas vezes não, mas quando eu faço, ele geralmente diz-me que não poderia encontrar .txt * ...
bash
conchas semelhantes e semelhanteszsh
) não são iguais a aspas simples! Por exemplo, a expansão do parâmetro ($foo
) é feita entre aspas duplas, mas não aspas simples.