【发布时间】:2016-05-11 04:55:45
【问题描述】:
我收到的文件名包含 3 个部分。
- 前缀:foobar_
- 日期:2015-12-31_
- 文件编号:100.dat
将它们放在一起,我们得到 foobar_2015-12-31_100.dat。目前挑选具有今天日期和正确文件编号的文件有效。因此,下一个文件编号为 101。请查看脚本以了解。
echo "Checking for file"
DBNR=`mysql -uroot -p$DBPWD test_schema -sNe 'SELECT max(file_id) FROM filenumbers WHERE filetype="D"'`
echo "Last number is: ${DBNR}"
NEXTNUM=$((DBNR+1))
NEXTFILE="foobar_${TODAY}_${NEXTSEQ}.dat"
echo ">>>>> NEXT FILENAME: ${NEXTFILE}" # $TODAY is optional
if [ -f "${NEXTFILE}" ]; then
echo ">>>>> Correct file exists!"
else echo "Incoming dir is not empty but expected file is not present."
NEXTFILE 所在的行是为特定文件生成的,但注释状态 $TODAY 是可选的。然后我如何排除 $TODAY 以便下面的 if 语句将评估为 true 的文件名:
- foobar_2016-02-01_101.dat,或
- foobar_2016-01-30_101.dat,或
- foobar_2016-02-02_101.dat?
并评估 foobar_2016-02-01_102.dat 为假?
【问题讨论】:
标签: shell if-statement filenames