将日期格式包含到 bash 中的另一个变量中

include date format into another variable in bash

当我将我的日期变量包含到另一个变量中时,我很难理解语法。

这是脚本片段:

#!/bin/bash -x


DAY=$(date +%d-%m-%y)
YESTERDAY=$(date -d "-1 days" +"%d-%m-%Y")
FILE=/tmp/${YESTERDAY}/*
OUTPUT="/tmp/count_${YESTERDAY}.log"

        for i in $FILE
        do
        grep -oP "(?<=<TEST>).*?(?=</TEST>)" ${i} >> ${OUTPUT}; 
        done

输出:

grep: /tmp/06-07-2015/*: No such file or directory

如果我手动设置如下变量:

FILE="/tmp/06-07-15/*" 

然后就解决了;

感谢您的帮助和建议:)

您在设置 YESTERDAY 的值时使用了错误的年份说明符; %Y 将 4 位数年份放入字符串中,而不是您的目录似乎使用的 2 位数年份。将该行更改为

YESTERDAY=$(date -d "-1 days" +"%d-%m-%y")