ここに私の問題があります: ユーザーが構成可能なさまざまなファイル名/場所 (データディレクトリにはサブディレクトリがある場合があります) を解決する必要があります。ループの前にファイル名を完全に解決できれば、次のスクリプトが機能します。
[プロンプト] さらに 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 ビットを実行しています。