我有以下代码:
target="file.txt"
ls "$target"
输出:
file.txt
这不适用于通配符:
target="*"
ls "$target"
输出:
ls: cannot access '*': No such file or directory
问题是它被引号括起来。它正在做ls '*'
而不是ls *
.
答案1
当您引用 时$target
,您是在告诉 shell 不要扩展通配符。尝试去掉引号:
target="*"
ls $target
你会得到一个目录列表。
那么还有哪些其他的值target
呢?可能有空格吗?问号?您希望他们受到怎样的对待?