繁体   English   中英

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

[英]why does “find” command not working in shell script

我的问题是在命令级别给出的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,第二个放最后一年_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

在脚本中这个命令:

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

应该

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

匹配cases_20191015.bin类的名称

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM