Réponses:
De la même manière que vous ne pouvez pas l'exécuter ls "*.txt"
dans un shell normal, vous ne pouvez pas non plus l'exécuter dans un sous-shell. Lorsque vous mettez des *.txt
guillemets, vous faites une ls
recherche pour un fichier littéral appelé *.txt
quand vous devriez plutôt faire ceci:
$ echo $(ls *.txt) # => file.txt otherfile.txt
Une meilleure façon de procéder consiste à ne pas utiliser ls
du tout.
$ echo *.txt # => file.txt otherfile.txt
ls
.
ls -l "*.txt"
. Ou du moins je peux. Je ne le fais pas souvent, mais quand je le fais, il me dit généralement qu'il n'a pas pu trouver * .txt ...
bash
et les shells similaires commezsh
) ne sont pas les mêmes que les guillemets simples! Par exemple, l'expansion des paramètres ($foo
) se fait entre guillemets doubles, mais pas entre guillemets simples.