2017-12-04 2 views
0

私はすべての引数を反復し、それぞれの検索を実行するスクリプトを記述しようとしています。使用例:Bash: "。*"を解釈して "。"に変換します。と ".."

./myScript "java" "chrome" "daemon" 
./myScript "java" ".*" 

。*を使用すると問題が発生します。あるとして

[email protected] 
for pattern in ${patterns}; do 
     .. 
done 

解釈*:

最初のアプローチ。そして..(私は理由を知ることができませんでした)。

第二のアプローチ:

[email protected] 
for pattern in "${patterns}"; do 
     .. 
done 

(代わりに、Java用に一度検索し、一度クロムのために、それは「Javaのクローム」を検索します)一つの単語としてすべての引数を考慮します。

ありがとうございます!

+2

'と解釈します。 and .. '< - これは正しいです、' * 'は展開され、' .'と '..'は両方とも有効なファイルです。 – arco444

+0

しかし、私はそれをスキップすることはできません。あなたは私にそれを手伝ってもらえますか? –

+2

展開を防止する場合は、一重引用符を使用します。 – arco444

答えて

1

問題は、変数に配列をassingingから来ている:

[email protected] 

引数を維持するために必要のない場合は、

patterns=("[email protected]") 

for pattern in "${patterns[@]}"; do 
    .. 
done 
1

に変更する必要がありますパターンを保存するには、これを使用することができます:

for pattern in "[email protected]"; do 
    ... 
done 
関連する問題