为什么“查找”命令在外壳脚本中不起作用

我遇到的问题是,在命令级别给出的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

上面是我的Shell脚本代码。逻辑是 首先输入起始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
CHENZHONGLIANG21 回答:为什么“查找”命令在外壳脚本中不起作用

在脚本中,此命令:

find . -name *\$CURRENT.bin -print

应该是

find . -name "*${CURRENT}.bin" -print

匹配cases_20191015.bin之类的名称

本文链接:https://www.f2er.com/3154678.html

大家都在问