Jawaban:
Dengan cara yang sama Anda tidak dapat menjalankan ls "*.txt"shell yang normal, Anda juga tidak bisa menjalankannya dalam subshell. Ketika Anda memberi *.txttanda kutip, Anda lsmencari file literal yang disebut *.txtkapan Anda seharusnya melakukan ini:
$ echo $(ls *.txt) # => file.txt otherfile.txt
Cara yang lebih baik untuk melakukan ini adalah tidak menggunakan lssama sekali.
$ echo *.txt # => file.txt otherfile.txt
ls.
ls -l "*.txt". Atau setidaknya saya bisa. Saya tidak sering melakukannya, tetapi ketika saya melakukannya, biasanya memberitahu saya bahwa itu tidak dapat menemukan * .txt ...
bashdan sejenisnya miripzsh) tidak sama dengan tanda kutip tunggal! Misalnya, ekspansi parameter ($foo) dilakukan di dalam tanda kutip ganda, tetapi bukan tanda kutip tunggal.