Ответы:
Точно так же, как вы не можете работать ls "*.txt"
в обычной оболочке, вы не можете запустить и в подоболочке. Когда вы помещаете *.txt
в кавычки, вы выполняете ls
поиск литерального файла, который называется, *.txt
когда вместо этого вы должны сделать это:
$ echo $(ls *.txt) # => file.txt otherfile.txt
Лучший способ сделать это - вообще не использовать ls
.
$ echo *.txt # => file.txt otherfile.txt
ls
.
ls -l "*.txt"
. Или, по крайней мере, я могу. Я делаю это не часто, но когда я это делаю, мне обычно говорят, что он не может найти * .txt ...
bash
аналогичных оболочкахzsh
) не совпадают с одинарными! Например, расширение параметра ($foo
) выполняется внутри двойных кавычек, но не одинарных.