[英]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.