4

私にとってはうまくいきました:

diretorio=$(echo 'test 123'*)

しかし、引用符で変数を使用すると機能しませんでした

Var2="test 123" 
diretorio=$(echo '$Var2'*)

それを解決する方法は?

4

3 に答える 3

6

あなたのグロブの間違いはそれです

diretorio=$(echo '$Var2'*)

シェルは一重引用符で変数を展開しないためです/dev/null

そう :

diretorio=$(echo "$Var2"*)

' と " と ` の違いを学んでください。http: //mywiki.wooledge.org/Quoteshttp://wiki.bash-hackers.org/syntax/wordsを参照してください。

于 2013-03-14T22:53:19.817 に答える
4

別のアプローチを提案できますか?スペースで区切られたファイル名のリストを作成する代わりに ("test 123" のように、ファイル名にスペースが含まれていると恐ろしい混乱を引き起こします)、配列を使用します。

diretorio=("${Var2}"*)
doSomethingWithAllFiles "${diretorio[@]}"
for umDiretorio in "${diretorio[@]}"; do
    doSomethingWithASingleFile "$umDiretorio"
done
于 2013-03-15T02:39:35.270 に答える
1

二重引用符を使用します。

diretorio=$(echo "$Var2"*)

単一のものは変数の置換を防ぎます

于 2013-03-14T22:53:55.677 に答える