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

时间:2015-07-06 13:50:33

标签: bash variables syntax

在将日期变量包含在另一个变量中时,我在构建语法时遇到了一些困难。

以下是脚本代码段:

#!/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/*" 

然后它解决了;

感谢您的帮助和建议:)

AL

1 个答案:

答案 0 :(得分:1)

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

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