不要な置換をトリガーするグロビング (ファイル名補完) 用に予約された文字を含むシェル変数 (BASH) を使用する最もエレガントな方法は何ですか? 次に例を示します。
for file in $(cat files); do
command1 < "$file"
echo "$file"
done
ファイル名には「[」や「]」などの文字が含まれています。私は基本的に2つのアイデアを持っています:
1) set -f でグロビングをオフにします: 別の場所で必要です
2) ファイル内のファイル名をエスケープします。BASH は、標準入力にパイプするときに「ファイルが見つかりません」と文句を言います。
任意の提案のためのThx
編集:欠落している唯一の答えは、ファイル名がシェル変数「$file」にある場合にグロビングに使用される特殊文字を含む名前のファイルから読み取る方法です。たとえば、command1 <「$file」です。