私はbashスクリプト内で、次のようないくつかのコード持ってfindコマンドの一部のために引用し:bashの変数展開と
FileNames=""
while read -r FileName; do
...
FileNames+=" -o -iname \"$FileName\""
...
done <"$ListOfFileNames"
FileNames="${FileNames# -o }"
find foo -type f \($FileNames \)
私はいくつかのファイル名にスペースが含まれていることが判明するまで、これは一般的に私のために働いていた
を(そしておそらくその他の特殊文字)。これらのケースをカバーするために$FileName
の使用に関する追加の引用符を追加すると、find
コマンド内の$FileNames
の拡張が不正に始まります。私は引用やエスケープのさまざまな方法を試して、空になった。私が書いた他の多くのスクリプトでは、他の多くの方法で変数をうまく使用していますが、これは私を困惑させています。私はCygwinの下でスクリプトを実行しています。これを処理する良い方法がありますか?
私はちょうどこの自分への答えを探していました。 [ここに行く](参照:http://stackoverflow.com/a/143172/6142694) –
あなたが提供するリファレンスは、私が検索した方法では表示されませんでしたが、基本的に同じ問題です。しかし、ネストされた展開を引用したり、変数の一部を削除したりする必要がないので、正確に重複しているとは言えません(最初に配列メソッドを試したときに間違っていました)。 – knokej
ダニエル、私はあなたのリンクが私に送った場所がコマンド内の変数の拡張で私の問題を説明しているのを実際には見ていませんでしたが、今はブリッジ下の水です。 – knokej