Risposte:
Allo stesso modo in cui non è possibile eseguire ls "*.txt"
in una shell normale, non è possibile eseguirlo nemmeno in una subshell. Quando inserisci le *.txt
virgolette, hai fatto la ls
ricerca di un file letterale chiamato *.txt
quando invece dovresti fare questo:
$ echo $(ls *.txt) # => file.txt otherfile.txt
Un modo migliore per farlo è di non utilizzare ls
affatto.
$ echo *.txt # => file.txt otherfile.txt
ls
.
ls -l "*.txt"
. O almeno posso. Lo faccio non spesso, ma quando lo faccio, di solito mi dice che non è stato possibile trovare * .txt ...
bash
e simili shellzsh
) non sono le stesse delle virgolette singole! Ad esempio, l'espansione dei parametri ($foo
) viene eseguita tra virgolette doppie, ma non tra virgolette singole.