Answers:
就像您无法ls "*.txt"
在普通Shell中运行一样,您也无法在子Shell中运行它。当你把*.txt
引号,你让ls
搜索称为文本文件*.txt
时,而不是你应该做的:
$ echo $(ls *.txt) # => file.txt otherfile.txt
更好的方法是完全不使用ls
。
$ echo *.txt # => file.txt otherfile.txt
ls
。
ls -l "*.txt"
。或者至少我可以。我不经常这样做,但是当我这样做时,通常会告诉我找不到* .txt ...
bash
和类似的shell中zsh
)与单引号不同!例如,参数扩展($foo
)在双引号内完成,但不能在单引号内完成。