对我而言,它起作用了:
diretorio=$(echo 'test 123'*)
但是当我在引号中使用变量
时却没有用Var2="test 123"
diretorio=$(echo '$Var2'*)
如何解决?
答案 0 :(得分:6)
glob中的错误是
diretorio=$(echo '$Var2'*)
是/dev/null
中的一个镜头,因为 shell 不会用单引号扩展变量。
所以:
diretorio=$(echo "$Var2"*)
了解'和'与`之间的区别。请参阅http://mywiki.wooledge.org/Quotes和http://wiki.bash-hackers.org/syntax/words
答案 1 :(得分:3)
我可以建议另一种方法吗?而不是创建一个以空格分隔的文件名列表(如果任何文件名包含空格,将导致可怕的混淆,例如“test 123”),请使用数组:
diretorio=("${Var2}"*)
doSomethingWithAllFiles "${diretorio[@]}"
for umDiretorio in "${diretorio[@]}"; do
doSomethingWithASingleFile "$umDiretorio"
done
答案 2 :(得分:1)
使用双引号:
diretorio=$(echo "$Var2"*)
单一的阻止变量替换