私のアプリケーションには次のようなフォルダー構造があります
/PNRPHD1/ex1/11.txt
/PNRPHD1/ex1/ex2/11.txt
/PNRPHD1/ex1/ex2/ex3/23.txt
/PNRPHD1/ex1/ex2/34.txt
/PNRPHD1/ex1/ex3/sp4/sp3/4334.txt,
しかし、/PNRPHD1 はメイン フォルダーです。そのフォルダー内で、毎回反復して最後のレベルに移動し、ファイルが存在するかどうか、そのディレクトリにあるかどうか、ファイルがディレクトリのコンテンツであるかどうかを確認する必要があります。ビルドする必要があります。そのパスとそのループから抜け出します。そして、変数の出力として上記のパスが必要です。
注:上記のディレクトリ構造では、各ディレクトリには他のサブディレクトリまたはファイルのいずれかを含めることができますが、両方を含めることはできません
IFループでそれをやろうとしていたことを誰かが示唆できますか?しかし、それはコードが多すぎます.最小限のコードで実装したかったのです
DIR_REG = /PNRPHD1;
ls -p $DIR_REG | while read -r dir
do
echo "directory under is -- " ${dir} >>${DEBUG_LOG_FILE}
BUP="/cygdrive/d/psoft/${PSFT_SID}/${dir}";
ls -p $BUP | while read -r dir1
do
if [ -f "${BUP}/${dir1}" ]; then
mkdir -p "${BUP}backup"
echo "level of directory -- " ${BUP}/${dir1} >>${DEBUG_LOG_FILE}
else
echo "level of directory -- " ${BUP}/${dir1} >>${DEBUG_LOG_FILE}
fi
done
done
必要なタスクを実行する、より優れたシェルスクリプトと簡潔なものを探しています..
更新:
ループの出力には、各反復で可変出力が必要です。1 番目のケース : /ex1/ 2 番目のケース : /ex1/ex2 3 番目のケース : ex1/ex2/ex3/ 4 番目のケース : /ex1/ex2/ex3/ 5 番目のケース : /ex1/ex3/sp4/sp3/