私にとってはうまくいきました:
diretorio=$(echo 'test 123'*)
しかし、引用符で変数を使用すると機能しませんでした
Var2="test 123"
diretorio=$(echo '$Var2'*)
それを解決する方法は?
あなたのグロブの間違いはそれです
diretorio=$(echo '$Var2'*)
シェルは一重引用符で変数を展開しないためです/dev/null
。
そう :
diretorio=$(echo "$Var2"*)
' と " と ` の違いを学んでください。http: //mywiki.wooledge.org/Quotesとhttp://wiki.bash-hackers.org/syntax/wordsを参照してください。
別のアプローチを提案できますか?スペースで区切られたファイル名のリストを作成する代わりに ("test 123" のように、ファイル名にスペースが含まれていると恐ろしい混乱を引き起こします)、配列を使用します。
diretorio=("${Var2}"*)
doSomethingWithAllFiles "${diretorio[@]}"
for umDiretorio in "${diretorio[@]}"; do
doSomethingWithASingleFile "$umDiretorio"
done
二重引用符を使用します。
diretorio=$(echo "$Var2"*)
単一のものは変数の置換を防ぎます