У меня проблема в том, что команда find
, заданная на уровне команд, работает должным образом;но когда та же команда выполняется из сценария, она не выполняется.
Когда я помещаю этот код в запрос, он работает:
find . -name *\20191202.bin -print
и в результате получается:
./IM/history_20191202.bin
./BAL/detail_20191202.bin
./REC/imbalance_20191202.bin
./DE/chart_20191202.bin
./FA/cases_20191202.bin
Я могу получить результат, как вы видите.
Но если я запускаю bash-файл, содержащий ту же команду, он не работает:
#!/bin/bash
read number1
read number2
echo "HELLO SHELL"
START=$(date --date=$number1 +"%Y%m%d")
END=$(date --date=$number2 +"%Y%m%d")
CURRENT="$START"
#echo `date -d "$CURRENT 1 day" +"%Y%m%d"`
while [ "$CURRENT" != "$END" ]; do
echo $CURRENT
find . -name *\$CURRENT.bin -print
#run shell job
CURRENT=`date -d "$CURRENT 1 day" +"%Y%m%d"`
done
Выше таммой код сценария оболочкиЛогика заключается в том, чтобы сначала поставить начало year_month_date = ex. 20191010, второе место - последний year_month_date = ex. 20191013, чтобы найти все файлы, чье имя включает 20191010, 20191011, 20191012.
Но когда я запускаю код, я получаю результат:
HELLO SHELL
20191013
20191014
20191015
Если кто-то знает, как получить правильный результатнаучи меня, пожалуйста;ожидаемый результат:
./IM/history_20191013.bin
./BAL/detail_20191013.bin
./REC/imbalance_20191013.bin
./DE/chart_20191013.bin
./FA/cases_20191013.bin
./IM/history_20191014.bin
./BAL/detail_20191014.bin
./REC/imbalance_20191014.bin
./DE/chart_20191014.bin
./FA/cases_20191014.bin
./IM/history_20191015.bin
./BAL/detail_20191015.bin
./REC/imbalance_20191015.bin
./DE/chart_20191015.bin
./FA/cases_20191015.bin