ここに私の問題があります: ユーザーが構成可能なさまざまなファイル名/場所 (データディレクトリにはサブディレクトリがある場合があります) を解決する必要があります。ループの前にファイル名を完全に解決できれば、次のスクリプトが機能します。
[プロンプト] さらに test.sh #! /usr/bin/env バッシュ newfile=実際のファイル名 `find -L ${FILE_PATH}/data -type d` のディレクトリの場合; 行う `ls -1 ${directory}/${newfile} 2>/dev/null` のファイル名の場合。行う if [[ -r ${filename} ]]; それから echo "${filename} が見つかりました" フィ 終わり 終わり [プロンプト] ./test.sh [プロンプト] ${SOME_PATH}/実際のファイル名が見つかりました
ただし、newfile にワイルドカードが含まれている場合、内側のループは実行されません。単一のファイルのみを返す場合でも。
私はいくつかの正規表現で検索を使用しますが、適切な式を自動生成し、何かの置換を行うには注意が必要です (たとえば、pgb.f0010{0930,1001}{00,06,12,18} はいくつかのファイルに関連付けられます2010 年の 9 月 30 日と 10 月 1 日では、最初のグループ化は指定された日付のスクリプトによって計算されます)。
pgb.f0010093000 pgb.f0010093006 pgb.f0010093012 pgb.f0010093018 pgb.f0010100100
pgb.f0010100106 pgb.f0010100112 pgb.f0010100118
Fedora 15 64 ビットを実行しています。