Shell:通过附加变量生成文件名

时间:2016-02-02 11:45:28

标签: shell if-statement filenames

我收到的文件名有3个部分。

  • 前缀:foobar _
  • 日期:2015-12-31 _
  • filenum:100.dat

将它们放在一起我们得到foobar_2015-12-31_100.dat。目前正在挑选具有今天日期和正确文件的文件。因此,下一个filenum是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语句对文件名的评估为真:

  • foobar_2016-02-01_101.dat,或
  • foobar_2016-01-30_101.dat,或
  • foobar_2016-02-02_101.dat?

并将foobar_2016-02-01_102.dat评估为false?

1 个答案:

答案 0 :(得分:1)

我相信你可以使用这张支票:

if [[ -f foobar_*_${NEXTSEQ}.dat ]]; then
    echo ">>>>> Correct file exists!"
else
    echo "Incoming dir is not empty but expected file is not present."
fi

*将使其适用于两者之间的任何日期。